Image segmentation using Otsu thresholding

OTSU(I,N) segments the image I into N classes by means of Otsu's N-thresholding method.
20,1K téléchargements
Mise à jour 10 mars 2010

Afficher la licence

IDX = OTSU(I,N) segments the image I into N classes by means of Otsu's N-thresholding method. OTSU returns an array IDX containing the cluster indices (from 1 to N) of each point.

IDX = OTSU(I) uses two classes (N=2, default value).

[IDX,sep] = OTSU(I,N) also returns the value (sep) of the separability criterion within the range [0 1]. Zero is obtained only with data having less than N values, whereas one (optimal value) is obtained only with N-valued arrays.

If I is an RGB image, a Karhunen-Loeve transform is first performed on the three R,G,B channels. The segmentation is then carried out on the image component that contains most of the energy.

Example:
---------
load clown
subplot(221)
X = ind2gray(X,map);
imshow(X)
title('Original','FontWeight','bold')
for n = 2:4
IDX = otsu(X,n);
subplot(2,2,n)
imagesc(IDX), axis image off
title(['n = ' int2str(n)],'FontWeight','bold')
end

------
See also:
http://www.biomecardio.com/matlab/otsu.html
-----

Citation pour cette source

Damien Garcia (2026). Image segmentation using Otsu thresholding (https://fr.mathworks.com/matlabcentral/fileexchange/26532-image-segmentation-using-otsu-thresholding), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2007b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Version Publié le Notes de version
1.4.0.0

Minor modifications

1.3.0.0

The segmentation for RGB image has been improved: a KLT is performed and we keep the component of highest energy.

1.2.0.0

RGB images are now analyzed in the gray, R, G and B scales.

1.1.0.0

New screenshot.

1.0.0.0