Comments (13)
I'm positive on the idea of this package. Binary dependencies are sometimes a barrier, and Cairo's performance has occasionally been less than impressive. I once tested a draw-lines-to-a-buffer algorithm long ago (I think it's archived on the mailing list), and a pure julia implementation was several times faster. I don't know whether that's still true, though---bugs/performance problems do tend to get fixed over time...
I haven't looked at GLVisualize's code, but if it's using the GPU to do the drawing, I'd say this is not redundant. Our headless server with no DISPLAY will thank you 😄.
from imagedraw.jl.
First results of using ImageDraw
with BRIEF descriptor and FAST keypoints!
from imagedraw.jl.
May I ask why the wheel is reinvented with this package? ;)
from imagedraw.jl.
This is just like 1% of the functionality of GLVisualize
:) , just some basic drawing functions found in most image processing packages with a simple API which a person can use directly as part of JuliaImages
without having to add the entire GLVisualize
.
from imagedraw.jl.
What about Cairo? Is it not stable enough?
What are the concerns?
from imagedraw.jl.
I did not know about Cairo.jl
. In this (https://github.com/JuliaGraphics/Cairo.jl/blob/master/samples/sample_arc.jl) is it possible to use an Image/Array directly with the arc
function without creating a Cairo context?
from imagedraw.jl.
For example, I need to draw all keypoints and the matches between them. Will something like this be possible?
map(k -> circle!(img1, k, radius = 10), keypoints1)
map(k -> circle!(img2, k, radius = 10), keypoints2)
offset = CartesianIndex(0, size(img2, 2))
grid = hcat(img1, img2)
map((k1, k2) -> line!(grid, k1, k2+offset), keypoints1, keypoints2)
My concern is that for a person accustomed to using packages like opencv
or matlab
, the learning curve for using JuliaImages
should not be too steep.
from imagedraw.jl.
well probably not exactly like this, but I'm sure there is a way to achieve this!
from imagedraw.jl.
I haven't really used Cairo
but going through the documentation, it seems a bit complicated (I may be wrong). If someone does need a better graphics library, he can move on to Cairo (which is the case with opencv
etc as well, they don't have a great drawing module but just the basic functions which are required most of the time). But if just basic stuff is required, this module will be good enough and there is no need to learn another package.
What do you think?
from imagedraw.jl.
Another example would be when a person is tracking some object in a video or image and wants it to be marked with the bounding box. Most of the cases in Computer Vision would require simple drawing functions like the ones in this module.
For a more graphics intensive case, like augmented reality where you have a canvas and need to draw complicated figures (2D/3D), something like Cairo
or GLVisualize
will anyways be the first choice and an image processing library would be used for just for the object detection for example.
from imagedraw.jl.
ccing @timholy for advice :)
from imagedraw.jl.
Merging #1, #3(needs tests) for now (they contain what I needed for keypoints). Rest of the functions are subject to the outcome of this discussion and will be done later.
from imagedraw.jl.
Okay fair enough :) Yeah, this is of course not redundant with GLVisualize ;)
from imagedraw.jl.
Related Issues (20)
- Dependency on LinearAlgebra HOT 1
- request for a maintainership HOT 2
- [RFC] Redesign the Drawable type HOT 4
- doclinks broken HOT 3
- Friendly request for patch release v0.2.4 HOT 1
- TagBot trigger issue HOT 3
- Discussion on circle fill,circle stroke option HOT 2
- Polygon/Any closed path filling algorithms HOT 7
- Bezier_curves and Random shapes drawables HOT 1
- Polyline with multiple segments HOT 1
- Implementation of poly2mask from matlab HOT 8
- Release, for ImageCore compat HOT 2
- Add logo for document HOT 2
- incorrect `closed` behavior HOT 9
- `BoundaryFill` doesn't work for real-size images HOT 4
- idea: interpolate the fillvalue
- RectanglePoints confuses me HOT 4
- Ellipse/Circle thickness with fill=false is broken HOT 1
- Documentation on "Drawing a Rectangle" is misleading
- Why collect the indices instead of drawing directly? HOT 1
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 imagedraw.jl.