-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Active contours level sets #67
Comments
For the record, @zygmuntszpak has replied in slack:
|
@Dale-Black I am also working in medical image segmentation(brain tumor segmentation), would sure like to help in active contour techniques and medical image analysis methods implementations. |
Great, let’s connect on the Julia zulip chat! |
Maybe something like morphsnakes from python would be nice to have. I also think all base functions should be available. |
If it helps, the idea is to provide a unified API (e.g., abstract type AbstractSegmentationAlgorithm end
struct ActiveContour <: ABstractSegmentationAlgorithm
...
end
alg = ActiveContour(args...)
segs = segment(img, alg) This design has been adopted by quite a lot of new packages in JuliaImages, including ImageQualityIndexes, ImageBinarization, and ImageContrastAdjustment. And we find it quite clear to implement, explain, and use. Another question is how do we store the result types and how do we display them. Currently it uses I kind of like the terminology of |
Hello guys, I'm a student from OSPP and glad to find this issue . As a part of my project, I have already implemented the Chan-Vese Segmentation which is a model for active contours in Julia. I've put the demo in my repo: https://github.com/JKay0327/Chan-Vese. Here is a preview for my work: However, as @johnnychen94 has said:
I'm confused about the result type of the Chan-Vese Segmentation. Curent type Redesign the |
Great to see this!
There's a sense in which Chan-Vese is a "pre-segmentation" technique, in the sense that it may identify multiple disconnected objects. One could call IMO when the output is boolean/binary, then a boolean-valued array rather than a SegmentedImage is appropriate. I'm about to submit a PR for a flood-fill algorithm that faces the same issue.
Much of that is underway. Already #73 has done much of it, but there's still more to do. |
Hey @JKay0327, this is kind of a side topic but I also reimplemented the exact same algorithm from scikit image in Julia and I had some questions regarding the |
@Dale-Black We can chat on Slack :) |
JuliaImages/juliaimages.github.io#220 A performance note for anyone who tries to migrate codes from MATLAB or Python: in Julia, we don't need to write explicit vectorized codes because the intermediate results are stored as arrays and arrays require memory allocations, which can often become a big overhead. For this specific example, every line in https://github.com/JKay0327/Chan-Vese/blob/0f165fe7654e0b0fc83d1a94262432077d8379a5/chan_vese.jl#L53-L73 allocates a new memory of size |
It also appears to claim to support arbitrary-dimensional arrays, but it looks like it's really only 2d? It does look like a very Of interest, I'm starting to compare some of our implementations to skimage and Matlab, and in the few I've checked we are blowing everyone out of the water 😄. (It's not even close...) OpenCV is likely to be a much bigger challenge, but I haven't checked yet. |
I am extremely new to this area but I would like to create a fully automatic image segmentation technique using active contours. The goal is that this could later be used in conjunction with some of the techniques in the realm of SciML to improve on the segmentation given some labeled images. Would this be a good library to start with?
The text was updated successfully, but these errors were encountered: