Implement following papers:
1. Chan, T. F., & Vese, L. A. (2001). Active contours without edges. IEEE Transactions on Image Processing, 10(2), 266‐277.
2. Chan, T.F., & Sandberg Y. B(2000). Active contours without edges for Vector‐valued Image. Journal of Visual Communication and Image Representation 11, 130–141 (2000)
3. Chan, T. F., & Vese, L. A. (2002). A Multiphase level set framework for image segmentation using the Mumford and Shah model. International Journal of Computer Vision 50(3), 271–293, (2002)
--------------------------------------------------------------------------------
Detailed HELP file
Teach you how to play with codes and what are functions for each file.
--------------------------------------------------------------------------------
Introduction to CV methods online
http://sites.google.com/site/rexstribeofimageprocessing/ --------------------------------------------------------------------------------
Demo video on Youtube
http://www.youtube.com/watch?v=uDYNy60yRks
Thank you for the code, this is an awesome tool for the level set segmentation method.
However, I would like to ask you some questions about its performance. I'm testing the code, and I'm still wondering whether the effect of the curvature is significant... it ranges btw [-1,1], once normalized. Then it is multiplied by mu, and finally the force_image is added, which its min and max values are 4 orders of magnitude higher... Any feedback on that would be very useful :)
I'm not sure if you still can reply me or not. But I have some confusions about the code: while you calculating the curvature, the G term is multiplied by K. I don't understand why there exists the term G for curvature. If you are using G to replace dirac delt function as in reference[27] mentioned in paper"active contours without edge", why don't you multiply the other force terms by G ?
Thanks a lot for your work. The help file is really helpful for me to understand your code. Nevertheless, I could not understand the content and function of the maskcircle2.m, could your explain a little more about it to me?
very good and beatiful implementation. I addition do not lose the website of authur
http://sites.google.com/site/rexstribeofimageprocessing/chan-vese-active-contours/wubiaotitiezi
Hi, thank you for making this helpful code available. I have two questions regarding the multiphase level set implementation.
Why do you use the Heaviside of phi2 in your code line
"f_image11=(L-c11).^2.*Heaviside(phi1).*Heaviside(phi2)
+f_image11;"?
In the paper, for the computation of dPhi/dt only H(phi1) is used. Is it related to the fact that you omit the Dirac delta function? Or is it a different numerical solution for the equation since in the paper a numerical scheme using constants C1 to C4 ... is proposed?
Thanks a lot in advance
Thanks for this implementation, it helps me a lot understanding the chan-vez method. I don't understand some parts of the code:
1- In the file check-stop I don't undestand this condition "if Q<=dt*.18^2", why you choose "dt*.18^2". What is the condition to stop the iterations?
Thsnks a lot
1. for question 1, I re-looked the code, you are right "im2double" that term should be omit.
2. the reason why I do normalization for both kappa term and image force term is I want to make sure that these two terms are always comparable, in other word, I do not want one of them dominate the minimization problem.
3. for me, this is OK. My understanding is: we distinguish background and foreground by their sign. I am pretty sure that even if you change my code for phi to the defnition you mentioned, you will still get the same answer.
Hello, I was checking the code and a few things are not clear for me.
1. When you are calculating the distance function, what is the reason of adding this "im2double(mask)" to 'phi0'?
2. In the calculation of the divergence and the force there is always a normalization.I couldn't exactly get the reason for that. Can't this be fixed by changing the coefficient 'mu'?
3. I think in the paper 'Active contours without edges' the normal direction is different than the implementation here. The paper states that when phi>0 we are inside the curve but in the implementation when phi>0 we are actually outside the curve C.