精华内容
下载资源
问答
  • matlab函数im2bw_图像分割之阈值分割(matlab) weixin_39824223 2021-01-02 06:21:09 373 收藏 2 文章标签: 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

    图像分割是一种重要的图像处理的技术。

    对于数字图像,我们往往会对他们中的某一部分感兴趣,这些部分我们称为前景或者目标, 其余部分称为背景。为了识别和分析图像中的目标,我们需要把他们从图像中提取出来,在此基础上对图像进行进一步的处理和应用,图像分割就是为了实现这个过程。

    ef2d323bddf07419419c5764e055048b.png一. 阈值分割法0 1 灰度阈值法分割

    灰度阈值分割就是把图像灰度分成不同的等级,然后确定灰度,门阈值的方法。灰度阈值分割其实就是二值化处理,即:选择一个阈值,将图像转化为黑白二值图像,用于图像分割以及边缘提取。

    显然,图像阈值化处理是一种阶梯函数,属于图像灰度级的非线性运算,该变换函数曲线如图所示。它的功能是由用户指定一个阈值, 如果图像中某个像素的灰度值大于该阈值,则将该像素的灰度值置为255,否则将其灰度值置为0。

    08125a77620c1ea1e3581dfd7cf9e67b.png

    输入一张图像,并用imhist函数显示他的直方图。

    db5bebcaa49ae3c223ec634c8d96baa6.png

    从理论上来讲,以直方图双峰之间的谷底处灰度值作为阈值进行图像的阈值化处理,即可将目标和背景分割开来。

    下面对他们进行图像分割

    运行-如下代码

     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);

    cbf35a65bc899adc55fd2bfd69931df1.png

    可以看到,在图像分割的过程中,阈值不宜选的过大或者过小,都会大大影响分割的效果,所以,在使用阈值分割的过程中,阈值的选择很重要,但是使用直方图的方法不容易确定出合适的阈值,这时候我们就要使用科学的方法来确定,通常我们有以下几种方法来确定:

    • 最小误差阈值

    • 最大方差阈值

    • 最佳阈值法

    • 差别分析法

    涉及科学计算的知识大家可以自行查阅资料掌握,下面我们重点讲述全局阈值法和局部阈值法分割。全局阈值法作为更先进的算法,可以直接算出阈值来,然后进行图像分割。

    02 全局阈值分割

    运行如下代码

    I=imread('coins.png');
      subplot(1,2,1);
      imshow(I);
      Level = graythresh(I);  %求取二值化的阈值
      BW = im2bw(I, level);   %按阈值进行二值化
      subplot(1,2,2);
      imshow(BW);

    8de0af7917b23c03dd131915596386c1.png

    03 局部阈值分割

    这里采用一张我自己用手机拍的图片为例,对它进行局部阈值处理

    n = imread('renjiancihua.jpg');
    f=rgb2gray(n);
    T = graythresh(f);                          % 自动获取阈值
    T = T*255;                                  % 阈值在区间[0,1],需调整至[0,255]
    g = f<=T;
    subplot(1,2,1);imshow(f);title('原图像');
    subplot(1,2,2);imshow(g);title(['阈值处理,阈值为' num2str(T)]);

    bce3ca910c292f879d6abe7b6dc95a48.png

     

    展开全文
  • matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种...

            matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。 在matlab命令行中键入doc im2b或help im2bw即可获得该函数的帮助信息。

    阈值变换

    比如数组 a = [120, 254, 0, 200, 99];

    设定一个阈值125, 并对a进行阈值变换, 那么a中凡是大于125的, 则变为255, 小于等于125的则变为0

    (具体对临界情况处理可能不同, 不过matlab中im2bw函数是按照上述方法处理的)

    这样a经过阈值变换后变为[0, 255, 0, 255, 0]

    一、将灰度图像f转换为二值图像bw。

    bw=im2bw(I,level);
    
    level空着的话,默认是0.5。level一般使用graythresh函数来计算
    f=imread('Fig0409(a)(bld).tif');
    figure(1);
    imshow(f);
    title('原图');
    
    figure(2);
    bw1=im2bw(f);%使用默认值0.5
    imshow(bw1)
    title('使用0.5作为门槛时的二值图像');
    
    figure(3);
    level=graythresh(f);%使用graythresh计算灰度门槛
    bw2=im2bw(f,level);
    imshow(bw2);
    title('通过graythresh计算灰度门槛时的二值图像');
    

    图像如下


    可以看到后面两张图片还是有区别的。

    二、将RGB图像转换为二值图像

    BW = im2bw(RGB, level)

    当输入图像不是灰度图像时,im2bw先将图像转换为灰度图像,再将图像通过灰度门槛level转换为二值图像

    例如:

    f=imread('Fig0619(a)(RGB_iris).tif');
    subplot(1,3,1);
    imshow(f);
    title('原图');
    
    bw=im2bw(f);
    subplot(1,3,2);
    imshow(bw);
    title('二值图像');
    
    level=graythresh(f);
    bw2=im2bw(f,level);
    subplot(1,3,3);
    imshow(bw2);
    title('通过graythresh计算门槛值后得到二值图像');


    图像如下:

    --------------------- 

    原文:https://blog.csdn.net/hhhhhyyyyy8/article/details/77866129 
     

    展开全文
  • matlabim2bw函数的用法

    万次阅读 2017-07-19 11:26:36
    matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种...
    matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。 在matlab命令行中键入doc im2b或help im2bw即可获得该函数的帮助信息。
    
      阈值变换
      比如数组 a = [120, 254, 0, 200, 99];
      设定一个阈值125, 并对a进行阈值变换, 那么a中凡是大于125的, 则变为255, 小于等于125的则变为0
      (具体对临界情况处理可能不同, 不过matlab中im2bw函数是按照上述方法处理的)
      这样a经过阈值变换后变为[0, 255, 0, 255, 0]
      语法
      BW = im2bw(I, level)
      BW = im2bw(X, map, level)
      BW = im2bw(RGB, level)
      其中level就是设置阈值的。level取值范围[0, 1]。
      例如:
      >> I = uint8([0, 255, 128, 127, 121, 202]);
      >> range = getrangefromclass(I)
      range =
      0 255
      >> I2 = im2bw(I, 0.5)
      I2 = 0 1 1 0 0 1
      >> I3 = im2uint8(I2)
      I3 = 0 255 255 0 0 255
      getrangefromclass函数能够根据图像数据类型(I的数据类型是uint8)获得图像数据的取值范围。通过这个例子, 可以看到, 图像I中每个像素的取值范围是0~255, 设定阈值为0.5, 则图像数据中凡是超过255 * 0.5 = 127.5的都变为255, 否则都变为0。
    展开全文
  • 图像处理函数im2bw详解

    千次阅读 2019-06-02 14:11:37
    im2bw是基于转换为值...matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然...

    转自:https://www.cnblogs.com/lihuidashen/p/3432562.html
    im2bw是基于转换为二值图像的算法,用的是otsu’s method.

    matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。 在matlab命令行中键入doc im2b或help im2bw即可获得该函数的帮助信息。

    阈值变换

    比如数组 a = [120, 254, 0, 200, 99];

    设定一个阈值125, 并对a进行阈值变换, 那么a中凡是大于125的, 则变为255, 小于等于125的则变为0

    (具体对临界情况处理可能不同, 不过matlab中im2bw函数是按照上述方法处理的)

    这样a经过阈值变换后变为[0, 255, 0, 255, 0]

    功能:

    通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。

    用法:

    BW = im2bw(I,level)

    将灰度图像 I 转换为二进制图像。输出图像 BW 将输入图像中亮度值大于 level 的像素替换为值1 (白色),其他替换为值0(黑色)。你指定 level 在 [0,1]之间,不用管输入图像的等级。函数graythresh 能用来自动计算变量 level 。如果你不指定 level ,im2bw 使用 0.5。

    BW = im2bw(X,map,level)

    将颜色表为 map 的索引图像 X 转换为二进制图像。

    BW = im2bw(RGB,level)

    将 RGB 真彩图像转换为二进制图像。Level是归一化的阈值,值域为[0,1]。Level可以由函数graythresh(I)来计算。
    【如果输入图像不是灰度图像, im2bw 首先将图像转换为灰度图像,然后通过阈值将灰度图像转换成二进制图像。】

    例子:load trees

    BW = im2bw(X,map,0.4);

    imview(X,map),imview(BW)

    (拓展一下)各个函数的使用:

    im2uint8:将输入转化为uint8,有效的输入图像数据类型包括logical, uint8, uint16, double

    im2uint16:将输入转化为uint16,有效的输入图像数据类型包括同上

    mat2gray:将输入转化为double,但是输出的double数据都在[0, 1]范围内,有效的输入只有double

    im2double:如果输入的不是double类型图像,在输出都是在[0, 1]范围,如uint8则输出为uint8/255。但如果是double类型,则原样输出

    im2bw:上面已经解释了,输出的是二值图像。

    展开全文
  • matlab(im2bw)

    千次阅读 2010-11-06 15:09:00
    IM2BW Convert image to binary image by thresholding. IM2BW produces binary images from indexed, intensity, or RGB images. To do this, it converts the input image to grayscale format (if it
  • matlabim2bw代码Demo-Aplikasi-GUI 项目 GUI 补充图像 源代码: 函数 varargout = Bismillah(varargin) % BISMILLAH Bismillah.fig 的 MATLAB 代码 % BISMILLAH 自身创建一个新的 BISMILLAH 或提高现有的 % 单身*...
  • MATLABim2bw()原理

    2020-05-19 18:04:47
    http://blog.sina.com.cn/s/blog_6935ad190101cuax.html
  • 拒绝im2bw,从我做起。单通道单阈值都有缺陷,对于多通道多阈值无能为力,慢到炸。不如我自己的算法。
  • matlabim2bw代码肿瘤可视化软件 大学项目:接受来自用户的 MRI 图像并提取图像中带有肿瘤的部分并突出显示以更好地可视化。 函数 varargout = brain_tumor_final_(varargin) % BRAIN_TUMOR_FINAL_brain_tumor_...
  • 1. 禁止使用matlab内置函数,使用两种方法实现:选取0.3作为阈值,将灰度图像C的大于0.3的元素变成1,小于0.3的元素变成0。...2. 使用matlab 内置函数im2bw 或者 imbinarize 函数实现以上功能,保存新图像到bw3 中。
  • MATLAB中将图像转换为值图像im2bw

    万次阅读 多人点赞 2017-09-06 14:39:51
    MATLAB中将图像转换为值图像,主要运用im2bw函数,涉及到一个灰度门槛的数值。 对于灰度图像 bw=im2bw(I,level); level空着的话,默认是0.5。level一般使用graythresh函数来计算,至于graythresh函数中运用到...
  • matlab 图像转换 命令 im2bw

    千次阅读 2017-07-06 16:28:23
    matlab im2bw作用 使用阈值(threshold)变换法 把灰度图像(grayscale image)转换成值图像 (黑白图,0黑 255白) 当然, 也可以是其他任意两种颜色的组合。 用法: BW = im2bw(I,level)  将灰度图像 I 转换...
  • 图像值化、反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域。实现过程如下:close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间...
  • conv函数:进行卷积运算,即多项式乘法,把两个向量写成升幂或降幂形式之后,多项式相乘,得到的多项式系数即为卷积运算结果,例:a=[1 2 3], b=[4 5 ], (1+2x+3x^2)*(4+5x) = 4+13x+22x^2+15x^3,那么conv(a,b) = ...
  • matlab 函数im2double)

    千次阅读 2014-02-12 09:02:40
    Matlab函数im2double简介 函数名称: im2double 函数功能: 把图像数据类型转换为双精度浮点类型。如果输入图像是双精度浮点类型(double)的,返回的图像和源图像相同。如果源图像不是双精度浮点类型的,该...
  • matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种...
  • 1、imadjust()函数调节图像的对比度(若图像较暗,可用imadjust函数命令来调节图像的对比度)I1=imadjust(I,stretchlim(I),[0;... 2matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grays...
  • 图像值化、反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域。 实现过程如下: close all; %关闭当前所有图形窗口,清空工作空间变量,...
  • 图像处理函数详解——im2bw

    千次阅读 2013-11-20 00:22:00
     matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种...
  • im2bw函数的阈值level

    千次阅读 2020-04-03 14:00:46
    im2bw函数MATLAB用于图像值化的函数,调用形式为: J = im2bw(I,level) 其中阈值level是一个0-1的值,如果输入的图像像素值范围0-255,设置阈值level=160,则该函数会将图像中像素值<160的点置为0,像素值...
  • im2bwmatlab中经常用到的一个函数,其作用就是将输入图像转化为值图像,但是其中也有一些坑啊!在检测应用中,一种比较好的选择是将输入图像转化为uint8后再使用im2bw函数,为什么呢?下面给出一个例子。 假如...
  • 从电脑上读取一张彩色图像,通过独立编程(不使用已有函数) ①实现将彩色图像转换为灰度图像、黑白图像的功能; ②实现将图像整体呈现效果为偏绿色风格; ③并将原始图像、灰度图像、黑白图像、绿色滤镜图像展示在...
  • im2bw

    千次阅读 2012-12-18 23:22:31
    matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成值图像。所谓值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种...
  • matlab2016 中,只有 im2bw 函数,其参数可以是灰度图或 rgb 图。 在 matlab2016 中可以用 im2bw 直接将 rgb 图像转换为值图; 但是在 matlab2018 中只能先将 rgb 图片转换为灰度图(用 rgb2gray() 函数),再...
  • matlab函数

    千次阅读 2015-11-18 21:08:03
    《数字图像处理》冈萨雷斯,Matlab函数汇总 . 图像显示 colorbar 显示彩条 getimage 由坐标轴得到图像数据 ice(DIPUM) 交互彩色编辑 image 创建和显示图像对象 imagesc 缩放数据并显示为...
  • Matlab 图像处理
  • piliang_im2bw.m

    2019-09-09 10:50:55
    本次上传文档为批量对文件夹中图片进行值化并将值化后的值图片进行保存
  • matlab函数 bwperim

    万次阅读 2016-12-19 21:33:02
    Matlab函数——bwperim 功能:查找值图像的边缘。 用法:BW2 = bwperim(BW1) BW2 = bwperim(BW1,conn) BW2 = bwperim(BW1,conn)表示从输入图像BW1中返回只包括对象边缘像素点的图像。 conn的定义值如下: 维数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,052
精华内容 820
关键字:

matlab函数im2bw

matlab 订阅