欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

MATLAB——阈值分割(一)

发布时间:2025/3/15 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MATLAB——阈值分割(一) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

阈值分割是一种简单有效的图像分割方法,适用于分割物体与背景有较强对比的图像,所有灰度大于或等于阈值的像素被判定为属于物体,灰度值为255表示前景,否则这些像素点将被排除在物体区域以外,灰度值为0表示背景。多阈值分割与单阈值分割并无本质区别,只是分割技巧不同。

直方图分割
灰度图像中画面比较简单且对象物的灰度分布比较有规律时,背景和对象物在图像的灰度直方图上各形成一个波峰,由于每两个波峰间形成一个低谷,因而选择双峰间低谷处所对应的灰度值为阈值,可将两个区域分离。
该方法称为直方图阈值双峰。
具体实现的方法是先做出图像f(i,j)的灰度直方图,若只出现背景和目标物两区域部分所对应的直方图呈双峰且有明显的谷底,则可以将谷底点所对对应的灰度作为阈值t,然后根据该阈值进行分割即可将目标从图像中分割出来。这种方法适用于目标和背景的灰度差较大,直方图有明显低谷的情况。

clear all; f=imread('peppers.png'); f=rgb2gray(f);%转换为灰度图像 f=im2double(f);%数据类型转换 %全剧阈值 T=0.5*(min(f(:))+max(f(:))); done=false; while ~doneg=f>=T;Tn=0.5*(mean(f(g))+mean(f(~g)));done = abs(T-Tn)<0.1;T=Tn; end display('Threshold(T)-Iterative');%显示文字 T r=im2bw(f,T); subplot(221);imshow(f); xlabel('(a)原始图像'); subplot(222);imshow(r); xlabel('(b)迭代法全局阈值分割'); Th=graythresh(f);%阈值 display('Global Thresholding- Otsu''s Method'); Th s=im2bw(f,Th); subplot(223);imshow(s); xlabel('(c)全局阈值Otsu法阈值分割'); se=strel('disk',10); ft=imtophat(f,se); Thr=graythresh(ft); display('Threshold(T) -Local Thresholding'); Thr lt = im2bw(ft,Thr); subplot(224);imshow(lt); xlabel('(d)局部阈值分割');

请各位大牛多多指教。刚入门。

总结

以上是生活随笔为你收集整理的MATLAB——阈值分割(一)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。