图像处理一之-摄像头二值化处理-(什么是二值化)

图像二值化 binary image

什么是二值化:

** 二值化图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值(阈值)**的像素灰度设为灰度极大值(255),把小于这个值的像素灰度设为灰度极小值(0),从而实现二值化,

简单来说:设定一个阈值valve,对于视频信号矩阵中的每一行,从左至右比较各像素值和阈值的大小,若图像灰度值大于或等于阈值,则判定该像素对应的255;反之,小于阈值的灰度值则为0。就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

二值化的作用:

简单通俗的说:二值化的所用就是将图像分成黑和白,更加有利于做图像处理判别。也就是我们说的黑白图像

在了解了这些之后,我们看下二值化的方法:

根据阈值选取的不同,二值化的算法分为固定阈值自适应阈值(动态阈值)。 比较常用的二值化方法则有:双峰法P参数法迭代法OTSU法

固定阈值自适应阈值:

这个就很简单理解了,固定阈值就是设置一个固定的阈值,进行二值化处理,而现在大部分二值化算法用的都是自适应阈值(动态阈值),很容易理解:固定阈值的二值化呢,,一个阈值往往只对应一类图像,如果图像的光照变暗了,或者其他因素改变了,那个单阈值情况的二值化效果会大大的折扣。自适应二值化其实就是一种根据图片的灰度直方图,得到一个适合本图像的二值化阈值。

硬件二值化和软件二值化:

硬件二值化的摄像头,是二值化的过程由逻辑芯片直接处理,就是内部自带二值化,它输出的就是二值化后的值了,,所得的图像即为黑白。给单片机节约二值化处理时间,从而不需要进行二值化处理。—-软件二值化就是摄像头没有自带二值化,需要自己做二值化处理

附最简单二值化代码,其他算法之后讲解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Void image_binaryzation(){for(int i=0;i<Row;i++)

{    for(int j=0;j<Col;j++)

    {if(Image\[i\]\[j\] >= Threshold)

       Image_new\[i\]\[j\]=1;else

    Image_new\[i\]\[j\]=0;

    }

}

}

其中 Row是对应采集到的行数,Col是列数,Image[i][j]是摄像头采集未二值化的数据存放的数组,Image_new[i][j]是新建的存放二值化后的数组,Threshold是阈值(前面有阈值的讲解)。

整理不易,点个赞再走呗!

-------------    本文结束  感谢您的阅读    -------------
0%