Giter VIP home page Giter VIP logo

Comments (13)

timholy avatar timholy commented on September 3, 2024 2

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.

mronian avatar mronian commented on September 3, 2024 1

res

First results of using ImageDraw with BRIEF descriptor and FAST keypoints!

from imagedraw.jl.

SimonDanisch avatar SimonDanisch commented on September 3, 2024

May I ask why the wheel is reinvented with this package? ;)

from imagedraw.jl.

mronian avatar mronian commented on September 3, 2024

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.

SimonDanisch avatar SimonDanisch commented on September 3, 2024

What about Cairo? Is it not stable enough?
What are the concerns?

from imagedraw.jl.

mronian avatar mronian commented on September 3, 2024

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.

mronian avatar mronian commented on September 3, 2024

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.

SimonDanisch avatar SimonDanisch commented on September 3, 2024

well probably not exactly like this, but I'm sure there is a way to achieve this!

from imagedraw.jl.

mronian avatar mronian commented on September 3, 2024

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.

mronian avatar mronian commented on September 3, 2024

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.

mronian avatar mronian commented on September 3, 2024

ccing @timholy for advice :)

from imagedraw.jl.

mronian avatar mronian commented on September 3, 2024

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.

SimonDanisch avatar SimonDanisch commented on September 3, 2024

Okay fair enough :) Yeah, this is of course not redundant with GLVisualize ;)

from imagedraw.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.