FTH is a fuzzy thresholding method for image segmentation. The method is based on relating each pixel in the image to the different regions via a membership function, rather than through hard decisions. The membership function of each of the regions is derived from a fuzzy c-means centroid search. As a consequence, each pixel will belong to different regions with a different level of membership. This feature is exploited through spatial processing to make the thresholding robust to noisy environments.
Method proposed in:
Aja-Fernández, S., A. Hernán Curiale, and G. Vegas-Sánchez-Ferrero, "A local fuzzy thresholding methodology for multiregion image segmentation", Knowledge-Based Systems, vol. 83, pp. 1-12, 07/2015.
This new version is highly improved.
New Version, 4.0
I have this error : MG=fth(I,0,2,1,0.02);
Error using smooth (line 73)
SMOOTH needs at least one argument.
Error in maxima_search (line 27)
sig = smooth.*[1 1 1]; % 1.5 in each dimension
would you please tell me how you show the threshold image after running the code?
Hello, Santiago. This code is helping me immensely. I'm still trying to understand the code and paper, but I wanted to thank you for sharing this.
Answer to Arnold: Your output will strongly depend on the input image. COntact me by mail and I can check where it is failing.
doesn't work for me. Gives 'S' and 'MG' which contains just ones.
Kindly tell me the steps to follow run this code
thank u for sharing
Thanx alot about sharing... I can not run it because of this error:
??? Error using ==> shiftmat
Too many input arguments.
Error in ==> seg_fuzzy at 207
M_tmp = shiftmat(Mx,i,1);
can you explain us how to implement it..
with my Regards...
Thanks for your sharing. would you please tell me how you show the threshold image after running the code?
Thanks for your help in advanced!
Thank you so much for your sharing code, it is very impressive.
I've read your paper and I would like to ask about the median MG (step 6). I confuse the use of MG and about calculating the MX in step 5 and step 6, since in your code, you didn't do anything about MG.
Thank you very much for your kind response.
Modify anything you want, of course. It should be easy. I cannot say when next version will be ready, sorry. I'll try to do it along these months.
thank you. I want to try it on 3d US images, can I change it? when the next version will be written?
The function is a basic implementation thought for 2D, but with very small changes it could work for 3D. The square neighborhoods used for smoothing and aggregation must be replaced by 3D neighborhoods. (I'll do it for the next version...)
does the function support 3d images?
The original file lacks of a control for more than 5 output sets. New version with problem corrected is added.
Your example itself fails with an error:
Undefined function or variable "Mx".
Error in seg_fuzzy (line 196)
Reference to the published paper added.
- The centroids are now searched by a fuzzy c-means.
Small change to correct a bug in 3D
A bug in shiftmat is corrected
Version 3: It admits 3D data and rgb images. It has no limit of number of output sets. Some minor bugs were corrected
Bug corrected for more than 5 maxima in smoothed histogram