Comments (5)
A worthy discussion point, though one that seems unlikely to have a unique answer.
The JuliaImages ecosystem could be organized in a variety of ways:
- (minimalist) as a collection of focused packages, without any kind of umbrella (the role of our current
Images
): a userimport
s orusing
s exactly what s/he needs - (maximalist)
using Images
gets you everything - (in between)
using Images
gets you "the common core" and you load extra packages for more advanced functionality
Right now we're closest to the third.
In many ways I think the third makes a certain amount of sense, with one big caveat: I'm not aware of any principle that defines what should or should not be in the common core. In practice it has largely been defined by history: what got put into Images.jl before the creation of the JuliaImages organization and the splitting out of much of the functionality to more focused packages. At the time I did the big 0.6 rewrite, I decided not to be breaking and to make sure that Images re-exported the functionality that had been moved to other packages. Right now the two big outsider packages (EDIT: of those hosted at JuliaImages) are ImageFeatures and ImageSegmentation, both focused on computer-vision type applications. (Here I'm not counting visualization packages.)
from imagefeatures.jl.
With regards to specifically whether this needs to depend on all of Images, probably not. I suspect the keypoints->corners->edges dependency would be the main one.
from imagefeatures.jl.
That makes sense.
The one thing that makes this situation a little awkward to explain to a end-user, is that just typing using ImageFeatures
is a sensible thing to do, while just typing using ImageTransformation
is not (nor any other core package).
I say this because displaying images in Jupyter without the custom show code in Images.jl works just well enough to confuse users, but its basically a showstopper.
from imagefeatures.jl.
Yeah, it might be worth moving to an ImageIO
package on its own, and have any package that loads an image format also load it.
from imagefeatures.jl.
One thing we are sure of is that Images.jl
is (or will be) just a convenient meta package. All actual codes will be moved outside to other separate packages eventually (If I understand it right).
Since this is the case, Images.jl
is just one of many potential delicately-designed toolboxes, which means we(developers) or users can compose packages together accordingly and free as long as we provide a decoupled and flexible dependency relationship between modules. -- This isn't impossible.
Then the role of Images.jl
becomes
- the most common end-user entrance for basic image processing work
- a useful living demo of how to compose modules together
Minimal or maximal, it really doesn't make much difference when composing modules becomes an easy work.
Possibly we could build up our packages just like we build up a docker image.
from imagefeatures.jl.
Related Issues (20)
- Build homography from array of matched points HOT 3
- HOG documentation
- GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence
- Hog tutorial not working HOT 13
- Rationale for Vector of CartesianIndex{2} for output 'matches' of match_keypoints HOT 16
- Error while trying to run the HOG example HOT 3
- HOG not working HOT 20
- Improving Hog allocations / Making a fast HOG version HOT 2
- Is it on the roadmap to support 1.0 in the near feature HOT 7
- Are there any plans to add sift and surf ?? HOT 12
- docstring missing HOT 3
- corner.jl: ERROR: MethodError: no method matching dotc(::RGBA{Float64}, ::RGBA{Float64}) HOT 1
- hough_circle_gradient: centers could hold 0 in CartesianIndex
- brief.jl:There is an error in the range HOT 3
- Getting the votes from the Hough transform HOT 5
- Images is downgraded
- TagBot trigger issue HOT 14
- coords_spatial not defined HOT 3
- Symmetry transform
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imagefeatures.jl.