• 一种超级快速的图像二值化技术


    在计算机视觉中,对图像进行二值化恐怕是最常见的操作了。为了检测目标,可能需要对每一帧图像的每一个像素点进行运算。如果能提升二值化的速度,那么,你的算法的效率就会大大的提高。本文,将介绍一种超级快速的图像二值化技术。

    要解决的问题:

    如上图所示,需要把彩色图像中,

    (1) R通道介于(smoevalue1, somevalue2)
    (2) G通道介于(somevalue3, somevalue4)
    (3) B通道介于(somevalue5, somevalue6)
    当图像中某个像素点同时满足上面3个条件时,将该像素点置为白色,否则置为黑色

    1)常用方法介绍
    常用的二值化方法,需要判断每一个通道的值是否在某个范围之内。伪代码如下:

     1 if (redcomponent > somevalue1 &&
     2     redcomponent < somevalue2 &&
     3     greencomponent > somevalue3 &&
     4     greencomponent < somevalue4 &&
     5     bluecomponent > somevalue5 &&
     6     bluecomponent < somevalue6)
     7 {
     8     // 将该像素点置为白色
     9 }
    10 else
    11 {
    12     将该像素点置为黑色
    13 }

    问题是每个像素点的判断,需要6次比较操作,太复杂了。

    2)新方法
    方法(1)中,对每一个通道都需要比较两次。为了提高速度,需要减少比较次数。
    为B、G、R三个通道,每个通道创建一个大小为256的数组。该数组中的初始值,
    例如R通道的数组,其在somevalue1到somevalue2,数组中的值是1,其他都是0;
    G通道的数组,其在somevalue3到somevalue4,数组中的值是1,其他都是0;
    B通道的数组,其在somevalue5到somevalue6,数组中的值是1,其他都是0。
    如下图所示:


    现在,如果要判断某个像素点应该标记为白色还是为黑色,只需要查询数组即可。伪代码如下:

     1 if (table_red[redcomponent] &&
     2     table_green[greencomponent] &&
     3     table_blue[bluecomonent])
     4 {
     5     // 将该像素点置为白色
     6 }
     7 else
     8 {
     9     将该像素点置为黑色
    10 }

    如果redcomponent的值介于(smoevalue1,somevalue2),那么table_red[redcomponent]=1,如果不在这个范围,那么table_red[redcomponent]=0.其他两个通道的值,也是同理。所以,如果条件(table_red[redcomponent] && table_green[greencomponent] && table_blue[bluecomonent])成立,就表示满足问题中的那3个条件。


    3)对方法2的扩展
    在方法2中,数组中只保存1或者0,这只需要一个bit 就ok了,如果上述的数组是int型(假设是32位),那么只是用了一个bit,还有31个bit没有是用,那么,其他的31个bit都可以表示一种颜色,就可以实现同时处理32种颜色了。

    (4)效率的对比
    图像大小(像素点个数) 方法1(ms) 方法2(ms)
    73902     1.278624    0.394651
    636000   5.791450    2.213925
    1555200 13.664513  5.687084

    通过实验,可以发现,方法2的速度快了300%。如果是用SIMD指令,速度会更快。

  • 相关阅读:
    php 按照中文字母名字排序,并把相应的头像显示出来
    小程序单图上传到服务器
    小程序上传图片多图上传
    php 截取 小程序上传到服务器图片,
    小程序选中传值过去 不选中默认第一个
    小程序数据放入全局变量可以使用
    小程序用户openid设置放缓存
    小程序计算两者商家与用户之间的距离
    微擎小程序上传图片
    小程序获取用户的地理位置与商家的相距距离
  • 原文地址:https://www.cnblogs.com/eustoma/p/6664479.html
Copyright © 2020-2023  润新知