进行阈值分割
Matlab读取BMP,JPG图片显示直方图并以直方图谷底为阈值进行阈值分割i=imread('blood.jpg');
i = rgb2gray(i) figure(1);
imshow(i);%显示原图 figure(2);
imhist(i);%显示直方图 u=imhist(i); for a=1:256 m(a)=0; end j=0;
%求出热闹所有峰值的灰度级 for a=1:2 for b=a+1 for c=b+1
if u(a)u(c) j=j+1; m(j)=b; end end end end
%求出峰值中的最大灰度级 p=m(1); for a1=2:j if u(m(a1))>u(p)
p=m(a1); end end
%求出峰值中的最小灰度级 w=m(1); for a4=2:j
if u(m(a4)) w=m(a4); end end
%求出与最大峰值相邻的峰值灰度级 l=u(w); for a2=1:j if u(m(a2))>l; x=m(a2)-p; if(abs(x)>30) l=u(m(a2));q=m(a2); end end end
%比较a3与b3的大小 if p>q a3=q;b3=p; else a3=p;b3=q; end
%求出直方图谷底灰度值 l1=u(a3);
for n1=(a3+1):(b3-1) if l1>u(n1) l1=u(n1);p1=n1;
end end
im=im2bw(i,p1/255);%二值化 figure(3);
imshow(im);%显示以直方图谷底为阈值分割后的图片
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务