【数字图像处理】灰度图像二值化

本文介绍了灰度图像的概念,其中每个像素的亮度值范围从0到255。灰度图像二值化是通过设定阈值,将图像转化为只有黑白两种颜色的过程。大律法(Otsu法)是一种常用的选择合适阈值的方法。此外,还讨论了二值化图像去噪的策略,即通过检查像素点及其邻域的亮度总和来识别并消除噪声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

灰度图像

每副图像的每个像素对应二维空间中一个特定的位置,并且有一个或者多个与那个点相关的采样值组成数值。

灰度图像,也称为灰阶图像,图像中每个像素可以由0(黑)到255(白)的亮度值(Intensity)表示。0-255之间表示不同的灰度级。

 

灰度图像二值化

二值化:以一个值(阈值)为基准,大于(等于)这个值的数全部变为是1(或者0),小于等于这个数的就全部将他们变为0(或1)。

二值化算法处理飞思卡尔赛道思路:设定一个阈值valve,对于图像矩阵中的每一行,从左至右比较各像素值和阈值的大小,若像素值大于或等于阈值,则判定该像素对应的是白色赛道;反之,则判定对应的是黑色的目标引导线。

记下第一次和最后一次出现像素值小于阈值时的像素点的列号,算出两者的平均值,以此作为该行上目标引导线的位置。

摄像头的二值化的代码:

 

Void image_binaryzation()

{

for(int i=0;i

{

    for(int j=0;j

    {

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

       Image_new[i][j]=1;

else

    Image_new[i][j]=0;

    }

}

}

Row是对应采集到的行数,Col是列数,Image[i][j]是摄像头采集未二值化的数据存放的数组,Img[i][j]是新建的存放二值化后的数组。

 

合适的阈值

在阈值二值化中,最主要的是选取合适的阈值,这也是二值化的难点所在。常用的二值化阈值选取方法有双峰法、p参数法、大律法(Otsu法)、最大熵阈值法、迭代法等。

大律法(Otsu法)

Otsu方法又名最大类间差方法,通过统计整个图像的直方图特性来实现全局阈值T的自动选取,其算法步骤为:
1) 先计算图像的直方图,即将图像所有的像素点按照0~255共256个bin,统计落在每个bin的像素点数量
2) 归一化直方图,也即将每个bin中像素点数量除以总的像素点
3) i表示分类的阈值,也即一个灰度级,从0开始迭代
4) 通过归一化的直方图,统计0~i 灰度级的像素(假设像素值在此范围的像素叫做前景像素) 所占整幅图像的比例w0,并统计前景像素的平均灰度u0;统计i~255灰度级的像素(假设像素值在此范围的像素叫做背景像素) 所占整幅图像的比例w1,并统计背景像素的平均灰度u1;
5) 计算前景像素和背景像素的方差 g = w0*w1*(u0-u1) (u0-u1)
6) i++;转到4),直到i为256时结束迭代
7)将最大g相应的i值作为图像的全局阈值
缺陷:OSTU算法在处理光照不均匀的图像的时候,效果会明显不好,因为利用的是全局像素信息。
解决光照不均匀:https://blog.youkuaiyun.com/kk55guang2/article/details/78475414
              https://blog.youkuaiyun.com/kk55guang2/article/details/78490069
              https://wenku.baidu.com/view/84e5eb271a37f111f0855b2d.html
***************************************************************/ 
int GetOSTU(uint8_t tmImage[Use_ROWS][Use_Line]) 
{ 
/**
  * @brief    未优化过的大津法
  *
  * @param    运算时间比较长
  *
  * @return   实测120*160的图像
  *
  * @note     K66 220MHz需要9ms
  *
  * @example  
  *
  * @date     2019/4/16 星期二
  */
//    int width = Use_ROWS;
//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值