Active Model Toolbox (AMT) provides the neccessary infrastructures to get started with active contours. It also provides two examples for users to learn from. It is based two publications
 Bing Li and Scott T. Acton, "Active contour external force using vector field convolution for image segmentation," Image Processing, IEEE Trans. on, vol. 16, pp. 2096-2106, 2007.
 Bing Li and Scott T. Acton, "Automatic Active Model Initialization via Poisson Inverse Gradient," Image Processing, IEEE Trans. on, vol. 17, pp. 1406-1420, 2008.
Hi Bing. Thanks for the great code. Do you plan to update the files to include the Active Surface (AS_*) code? I would find this very useful.
If you don't have Bioinformatics Toolbox, you can simplify comment out that function call
Works great!! There is some bugs for open type but the code is easy to understand and fix it.
I cannot even use the example, an error occured, beacause Bioinformatics Toolbox is needed.
Error using AM_FFS (line 129)
GRAPHCONNCOMP() in the Bioinformatics Toolbox is required to run this function!
Error in example_pig (line 63)
vert = AM_FFS(Fext,imdilate(f,strel('disk',1)));
too bad :(
@Jack - well, I have another set of AS_* functions for parametric active surfaces, but I haven't had time to polish the code to really publish them. :)
Very nice job, Bing. It works perfect. Thank you ! Furthermore, I would like to ask you, how can I use/modify this code for 3D- Image/Object? Which functions can I use instead of AC_display, AC_quiver, AC_deform etc.? Actually I want to segment an 3D image and visualize it like your example for 2D-image.
Cris, Thanks for using the code.
- AM = Active model, AC = Active contour, AS = Active surface. AM_* functions are general function that can be used for either 2D or 3D cases; AC_* functions are 2D only. There are some AS_* functions I didn't put in the package, since they are too messy to be published.
- Thanks for catching this problem in AC_deform. Even though it doesn't cause any problems, I agree that it is confusing. I'll update the file.
Thanks for the code, Bing. This is very useful!
- You are using a confusing naming scheme, some functions start with AC, some with AM, but I do not see the logic in the division.
- In your "main" function, AC_deform, you have two nested FOR loops that both use the variable "i" as index. The outer loop just uses it as a counter, that value is not actually used anywhere. This is why the code works OK. But it would be clearer if these were different variables. Also, I prefer using "ii" for index, because "i" is also used for the complex number and redefining it could cause problems.