下面使用極小值點阈值選取方法,編寫MATLAB程序實現圖像分割的功能。
極小值點阈值選取法即從原圖像的直方圖的包絡線中選取出極小值點,
並以極小值點為阈值將圖像轉為二值圖像
clear all; close all ; G=imread('rabbit.png'); figure(); subplot(2,2,1); imshow(G); subplot(2,2,2); imhist(G); subplot(2,2,3); imhist(G); [h,x]=imhist(G); h=smooth(h,7); plot(x,h) %求出阈值T df1=diff(h);%一階差分 df2=diff(df1);%二階差分 [m,n]=size(df2); T=0; for i=1:m if(abs(df1(i+1))<=0.15 && df2(i)>0) T=x(i+2)%確定阈值 break; end end G=im2bw(G,T/255);%轉為二值圖像 subplot(2,2,4); imshow(G);