zoukankan      html  css  js  c++  java
  • 图像处理函数详解——im2bw

      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:上面已经解释了,输出的是二值图像。

  • 相关阅读:
    HDOJ 1000 A + B Problem C++解法
    HDU之旅
    C++primer plus第六版课后编程题答案8.8
    C++primer plus第六版课后编程题答案8.6
    C++primer plus第六版课后编程题答案8.5
    C++primer plus第六版课后编程题答案8.3(正解)
    C语言练手自己编写学生成绩管理系统
    C_数据结构
    C---数组名作函数参数
    C---通过指针访问数组
  • 原文地址:https://www.cnblogs.com/lihuidashen/p/3432562.html
Copyright © 2011-2022 走看看