matlab函数im2bw |
您所在的位置:网站首页 › 灰度图转化为二值图代码 › matlab函数im2bw |
转载自:https://blog.csdn.net/weixin_39824223/article/details/112249214 matlab函数im2bw_图像分割之阈值分割(matlab)weixin_39824223 2021-01-02 06:21:09 373 收藏 2 文章标签: matlab函数im2bw 图像分割是一种重要的图像处理的技术。 对于数字图像,我们往往会对他们中的某一部分感兴趣,这些部分我们称为前景或者目标, 其余部分称为背景。为了识别和分析图像中的目标,我们需要把他们从图像中提取出来,在此基础上对图像进行进一步的处理和应用,图像分割就是为了实现这个过程。
灰度阈值分割就是把图像灰度分成不同的等级,然后确定灰度,门阈值的方法。灰度阈值分割其实就是二值化处理,即:选择一个阈值,将图像转化为黑白二值图像,用于图像分割以及边缘提取。 显然,图像阈值化处理是一种阶梯函数,属于图像灰度级的非线性运算,该变换函数曲线如图所示。它的功能是由用户指定一个阈值, 如果图像中某个像素的灰度值大于该阈值,则将该像素的灰度值置为255,否则将其灰度值置为0。 输入一张图像,并用imhist函数显示他的直方图。 从理论上来讲,以直方图双峰之间的谷底处灰度值作为阈值进行图像的阈值化处理,即可将目标和背景分割开来。 下面对他们进行图像分割 运行-如下代码 f=imread('ll.png'); f1=im2bw(f,91/255); f2=im2bw(f,140/255); f3=im2bw(f,120/255); f4=im2bw(f,56/255); subplot(2,2,1);imshow(f1); subplot(2,2,2);imshow(f2); subplot(2,2,3);imshow(f3); subplot(2,2,4);imshow(f4);可以看到,在图像分割的过程中,阈值不宜选的过大或者过小,都会大大影响分割的效果,所以,在使用阈值分割的过程中,阈值的选择很重要,但是使用直方图的方法不容易确定出合适的阈值,这时候我们就要使用科学的方法来确定,通常我们有以下几种方法来确定: 最小误差阈值 最大方差阈值 最佳阈值法 差别分析法 涉及科学计算的知识大家可以自行查阅资料掌握,下面我们重点讲述全局阈值法和局部阈值法分割。全局阈值法作为更先进的算法,可以直接算出阈值来,然后进行图像分割。 02 全局阈值分割 运行如下代码 I=imread('coins.png'); subplot(1,2,1); imshow(I); Level = graythresh(I); %求取二值化的阈值 BW = im2bw(I, level); %按阈值进行二值化 subplot(1,2,2); imshow(BW);03 局部阈值分割 这里采用一张我自己用手机拍的图片为例,对它进行局部阈值处理 n = imread('renjiancihua.jpg'); f=rgb2gray(n); T = graythresh(f); % 自动获取阈值 T = T*255; % 阈值在区间[0,1],需调整至[0,255] g = f |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |