Matlab实现图像阈值分割
程序员文章站
2024-02-11 12:49:58
...
使用matlab实现阈值分割,实现两种方法,一是人工选择阈值进行分割,而是自动选择阈值进行分割。
操作步骤
1、 打开Matlab内容自带的coins.png图像。
2、 观察它的直方图。
3、 人工选定一个阈值,并进行分割。
4、 使用自动化阈值选定方法,进行分割。
根据直方图显示,此图像符合双峰分布的基本特征,峰谷大概在120左右,所以人工选择分割的阈值为120,在自动分割上采用Otsu的方法进行自动的图像阈值分割。
clc,clear
I=imread('coins.png');
imshow(I);
%输出直方图
figure;imhist(I);
%人工选定阈值进行分割,选择阈值为120
[width,height]=size(I);
T1=120;
for i=1:width
for j=1:height
if(I(i,j)<T1)
BW1(i,j)=0;
else
BW1(i,j)=1;
end
end
end
figure;imshow(BW1),title('人工阈值进行分割');
%自动选择阈值
T2=graythresh(I);
BW2=im2bw(I,T2);%Otus阈值进行分割
figure;imshow(BW2),title('Otus阈值进行分割');