图像处理一 摄像头二值化处理

图像二值化 binary image

什么是二值化:

二值化是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值(阈值)的像素灰度设为灰度极大值(255),把小于这个值的像素灰度设为灰度极小值(0),从而实现二值化。
简单来说:设定一个阈值,对于视频信号矩阵中的每一行,从左至右比较各像素值和阈值的大小,若图像灰度值大于或等于阈值,则判定该像素对应的255;反之,小于阈值的灰度值则为0。就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

二值化的作用:

简单通俗的说:二值化的所用就是将图像分成黑和白,更加有利于做图像处理判别。也就是我们说的黑白图像。原图二值化图像
在了解这些以后,我们看下二值化的方法:
根据阈值选取的不同,二值化的算法分为固定阈值自适应阈值(动态阈值)。 比较常用的二值化方法则有:双峰法、P参数法、迭代法和OTSU法等。

固定阈值和自适应阈值:

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

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

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

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是阈值(前面有阈值的讲解)。

发布了16 篇原创文章 · 获赞 9 · 访问量 2399

猜你喜欢

转载自blog.csdn.net/weixin_44587775/article/details/99724070