当前位置:   article > 正文

Matlab图像处理(2)彩色图像或灰度图像转换为二值图像(初学必看)_matlab生成二值图像

matlab生成二值图像

手把手教你用Matlab实现图像二值化

图像二值化有多种方式,但重点还是如何确定阈值,图像灰度值大于阈值将变为1也就是白色,小于将变为0也就是黑色,基本代码如下:

  1. RGB = imread('1.jpg');%将图像读入工作区
  2. Y = rgb2gray(RGB);%将图像灰度化
  3. BW = imbinarize(Y); %将图像转换为二值图像
  4. figure;
  5. imshow(BW)%显示二值图像

这是一个最基本将彩色图像转换为二值图像的代码,接下来详细解释代码(未出现的解释去翻看之前的文章):

  imbinarize是matlab自带函数,意思是将后面括号里的图像二值化

灰度图像转换为二值图像将转换灰度的步骤去掉即可,代码:

  1. Y= imread('1.jpg');%将图像读入工作区
  2. BW = imbinarize(Y); %将图像转换为二值图像
  3. figure;
  4. imshow(BW)%显示二值图像

注意imbinarize只能处理二维图像,如果是彩色图像要进行灰度化

imbinarize通过将所有高于全局阈值的值替换为 1 并将所有其他值设置为 0,从二维或三维灰度图像 I 创建二值图像。默认情况下,imbinarize使用 Otsu 方法,该方法选择特定阈值来最小化阈值化的黑白像素的类内方差。

也就是说imbinarize其实是通过一个方法自动生成了一个阈值来进行二值化,那假如我们想自己规定一个阈值呢?

也很简单

  1. Y= imread('1.jpg');%将图像读入工作区
  2. J=imbinarize(Y,k); %转换成二值图,k为分割阈值
  3. figure;
  4. imshow(J);

这个代码里k就是阈值,如果你有更好的方法得到一个更好的阈值就可以使用这个代码。

补充一个得到阈值的代码

k=graythresh(Y); %得到最优阈值

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/954929
推荐阅读
相关标签
  

闽ICP备14008679号