Code covered by the BSD License  

Highlights from
Fast Continuous Max-Flow Algorithm to 2D/3D Image Segmentation

5.0

5.0 | 3 ratings Rate this file 69 Downloads (last 30 days) File Size: 2.19 MB File ID: #34126
image thumbnail

Fast Continuous Max-Flow Algorithm to 2D/3D Image Segmentation

by Jing Yuan

 

08 Dec 2011 (Updated 16 Dec 2011)

Fast continuous max-flow algorithm to 2D/3D image segmentation developed in matlab, C and GPU

| Watch this File

File Information
Description

This software implements the fast continuous max-flow algorithm to 2D/3D image segmentation. It provides three implementations: matlab, C and GPU (cuda based). All the source files are provided. So it is easy for you to incorporate the algorithms in your applications.

Image segmentation can be modeled as computing the min-cut in a spatially continuous setting. The continuous max-flow formulation is dual/equivalent to such continuous min-cut problem. On the other hand, it also leads to a new fast algorithm in numerics, i.e. the fast continuous max-flow algorithm. More details are given in the document CMF_README.pdf. Wish this software would be helpful for you and your works!

For multi-region image segmentation, the fast continuous max-flow algorithm can be downloaded by:
http://www.mathworks.com/matlabcentral/fileexchange/34224
which computes multiple segments simultaneously!

Email Jing Yuan (cn.yuanjing@gmail.com) for the questions, comments and suggests. You are welcome to propose your ideas of improvements. Any contribution will be kindly acknowledged in CMF_README.pdf.

Required Products MATLAB
MATLAB release MATLAB 7.10 (2010a)
Other requirements any C compiler, CUDA C compiler
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (8)
13 Dec 2011 Jing Yuan

The constant BLOCK_SIZE determines the total number of threads when the kernel is launched. For the 2D case, it is 16; so 16^2 = 256 threads are launched. For the 3D case, it is 8; so 8^3 = 512 threads are launched.

Please check the GPU you are using and choose a proper value for BLOCK_SIZE.

13 Dec 2011 Jing Yuan

The 3D data file *.nii is written in the format of nifti. You can open it by the function load_nii(), which can be downloaded by the matlab toolbox: http://www.mathworks.com/matlabcentral/fileexchange/8797 .

15 Dec 2011 Jing Yuan

The time unit using in programs is actually mili-sec., not sec.

For example, if the program shows:

Computing Time for max-flow = 30.0000 sec.

it is actually 30 mili-second, not 30 seconds.

18 Dec 2011 Martin Rajchl  
23 Dec 2011 Abraam Soliman  
05 Jan 2012 gargoyle

hi, I have 3d images of cells which i need to process over a time axis.
however, i dont have an Nvidia card (but a ati mobility radeon hd 4670). from what i understand after a brief search online is that i cannot use the CUDA with this processor... is there a work around for this? is there perhaps a way that this code can we written for ati cards? I'm willing to do it although i will need some coaching since i have never worked with GPUs before.

05 Jan 2012 Jing Yuan

To gargoyle

For AMD's GPU, you can use OpenCL and revise the codes with OpenCL programming. OpenCL tends to be a GPU programming standard in the future, which both NVidia and AMD support. It has a very similar syntax as CUDA. I'll also rewrite the codes by OpenCL in the future.

You can check this link for an overview of the two GPU programming CUDA and OpenCL:
http://www.streamcomputing.eu/blog/2011-06-22/opencl-vs-cuda-misconceptions

13 Jan 2012 Eran Ukwatta  
Please login to add a comment or rating.
Updates
15 Dec 2011

Some typos are corrected.

16 Dec 2011

Update the description.

Tag Activity for this File
Tag Applied By Date/Time
image processing Jing Yuan 08 Dec 2011 15:06:28
image segmentation Jing Yuan 08 Dec 2011 15:06:28
convex optimization Jing Yuan 08 Dec 2011 15:06:28
mathematics Jing Yuan 08 Dec 2011 15:06:28
medical imaging Jing Yuan 08 Dec 2011 15:06:28
graph cut Jing Yuan 08 Dec 2011 15:06:28

Contact us at files@mathworks.com