前言


一、基于OTSU处理不均匀光照图像改进算法

为解决不均匀光照下图像二值化问题,提出一种基于最大类间方差法(OTSU算法)的改进二值化算法,将图片分为明亮区域和阴暗区域两部分,分别计算两部分最大类间方差对应的阈值,通过分析阴暗区域特征,判断每一像素点位于明亮区域还是阴暗区域,从而确定每一点的阈值。实验结果表明,该算法可以解决OTSU算法处理光照不均匀图像丢失信息问题,可广泛应用于光照不均匀条件下的文本图像二值化处理,针对特殊情况较好,相对于其他算法适用性更强。

注明:算法想法来自文献:刘明兴,刘泽平,李斌,符朝兴,孟含所著的基于OTSU处理不均匀光照图像改进算法研究

二、算法原理

1.利用OTSU算法计算照片明亮处的最大间类方差

假设整副图像最大类间方差对应的阈值为T1,在计算时,虽然考虑了阴暗处像素的灰度值,但对明亮处二值化效果影响不大,为了减少输入参数,把T1作为图像明亮处的阈值。

Otsu1 = thresh_otsu(src, 256);//T1 = Otsu1

2.利用OTSU算法照片阴暗处的最大间类方差

对图像阴暗处再次利用OTSU算法计算其最大间类对应的阈值T2。

Otsu2 = thresh_otsu(src, Otsu1);//T2 = Otsu2

3.判断像素点所处区域

利用OTSU算法,2次处理光照不均匀图片,可以得到图片明亮处及阴暗处二值化合适的阈值,因此,只要确定像素点处于明亮处还是阴暗处,就可以确定该像素点的阈值。位于阴暗区域内部的点,其周围一定范围内的点的灰度值都小于T1,因此,比较(x,y)点的周围(h×w)各点与阈值T1的大小关系,确定该点是否位于阴暗区域内部。


计算 h*w 区域内 B(x,y)灰度值和Sum,若Sum值大于a*255*h*w(0<a<1),说明点(x,y)周围 h*w 区域内至少有 a*h*w 个点的灰度值大于 T1 ,该点处于明亮区域或明暗交界处,阈值取T1,否则该点阈值为T2。通过上述得到改进后的OTSU算法。选取 h=17,w=17,a=0. 2


代码如下(示例):

int ThreshldValue = 0.2 * 255;
threshold(Mask, Mask, ThreshldValue, 255, THRESH_BINARY);

4.改进OTSU算法明暗边界处噪点的去除

去除光暗交界处的噪声后,二值化结果将大大提高。边缘痕迹多出现在光暗交界处的明亮背景区域。噪点所在像素点的灰度值小于阈值T1,但灰度值明显大于明亮处内容部分阈值,因此将T1降低作为明亮处的阈值,即β*T1作为阈值,其中0<β<1。当h=17,w=17,a=0. 2,β=0.9时,得到改进OTSU并去噪算法。

代码如下(示例):

for (int r = kernelSize; r < Mask.rows - kernelSize; r++)
    {
        for (int w = kernelSize; w < Mask.cols - kernelSize; w++)
        {
            int pixelValue = src.at<uchar>(r - kernelSize, w - kernelSize);
            if (Mask.at<uchar>(r, w) != 0)//明亮区域
            {
                if (pixelValue > Otsu1*0.9)
                {
                    result.at<uchar>(r - kernelSize, w - kernelSize) = 255;
                }
            }
            else if (Mask.at<uchar>(r, w) == 0)//阴暗区域
            {
                if (pixelValue > Otsu2)
                {
                    result.at<uchar>(r - kernelSize, w - kernelSize) = 255;
                }
            }
        }
    }

三、算法处理效果

总结

改进的OTSU算法处理光照不均匀图像相关推荐

  1. Matlab实现基于二维伽马函数的光照不均匀图像自适应校正算法

    Matlab程序: %% % 基于二维伽马函数的光照不均匀图像自适应校正算法 % %% clc,close all; tic; im=imread('你的图片.jpg'); figure; imsho ...

  2. matlab中采集图片的光照不均匀,一种光照不均匀图像的处理方法及系统与流程

    本方面涉及图像处理技术领域,具体地说是一种光照不均匀图像的处理方法及系统. 背景技术: 人体横断面彩色图像在采集的过程中,由于环境光照的变化,存在光照不均匀的情况,直接影响了图像的质量,进而影响图像的 ...

  3. 去光照不均匀matlab 算法和代码放出

    其他原创博客http://blog.csdn.net/baolinq 主要看第三部分就可以,前面是一些其他常见 的基本图像方法.基于二维伽马函数的光照不均匀图像自适应校正算法 在视频和图像的采集过程中 ...

  4. 两幅二值图像叠加_【显微视界】光照不均匀图像分割技巧1——分块阈值

    今日光电        有人说,20世纪是电的世纪,21世纪是光的世纪:知光解电,再小的个体都可以被赋能.欢迎来到今日光电! ----与智者为伍 为创新赋能---- 前言   在数字图像处理中,图像分 ...

  5. 光照不均匀图像分割技巧1——分块阈值

    本文章由wikiwen撰写,转载请注明出处. 文章链接:http://blog.csdn.net/kk55guang2/article/details/78475414 作者:wikiwen 前言   ...

  6. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  7. python去除图像光照不均匀_低光照环境下图像增强相关

    Low-Light Image Enhancement via a Deep Hybrid Network [TIP2019] Underexposed Photo Enhancement using ...

  8. 面试官:怎么改进哈希算法实现负载均衡的扩展性和容错性?我:...

    面试官:怎么改进哈希算法实现负载均衡的扩展性和容错性? 什么是哈希算法 数据结构中我们学习过哈希表也称为散列表,我们来回顾下散列表的定义. 散列表,是根据键直接访问在指定储存位置数据的数据结构.通过计 ...

  9. python去除图像光照不均匀_【转载】光照不均匀图像分割技巧

    1. 案例描述 在数字图像处理中,图像分割是很关键的一步,当图像质量较好,光照很均匀的时候只需用全局阈值的方法就能很完美地完成图像分割任务,但是有些时候会遇到光照不均匀的现象,这个时候就需要用一些技巧 ...

  10. 【Matlab】Niblack算法和Otsu算法

    图像的二值化根据阈值确定方法的不同,可以分为局部阈值法和全局阈值法.Niblack算法属于局部阈值法.Otsu算法属于全局阈值法. 一.Niblack算法 Niblack算法是通过某一像素点及其邻域内 ...

最新文章

  1. 周立波贼经典的话11-20
  2. 使用Linq时出现Row not found or changed. Linq 找不到行或行已更改的解决办法
  3. Linux内核 获取本机mac,Linux获取本机MAC地址
  4. 高能预警!Apache Flink Meetup · 上海站返场啦
  5. eclipse查看git地址_在 IntelliJ IDEA 中使用 Git,太方便了
  6. python抽象类可以实例化吗,是否可以在Python中创建抽象类?
  7. Wi-Fi 6 认证计划启动:开启 Wi-Fi 新纪元
  8. 首次打开文件简单分析
  9. 协鑫集成等四家公司被退出欧盟MIP协议
  10. Windows安装JDK1.8
  11. 超详细JDK下载与安装步骤
  12. 软件项目管理案例教程第4版知识清单
  13. 自建服务器解网络锁,掌握iPhone1-4代刷机技巧
  14. 中南大学网络教育计算机考试答案,2015年6月中南大学网络教育课程考试《计算机组成原理》复习题及参考答案.pdf...
  15. python怎么写入txt文件_python 如何将数据写入本地txt文本文件的实现方法
  16. 准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure)、AUC、ROC的理解
  17. Feb16 小白《Linux就该这么学》学习笔记3
  18. 所在位置 行:1 字符: 1+ cnpm i+ ~~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityExcepti
  19. 等额本金和等额本息两种贷款方式的比较
  20. t-sql 中实现循环处理

热门文章

  1. DRF serializer 自定义列
  2. api64 gta5缺少steam_GTA5无法启动此程序,因为计算机中丢失steam_api64.dll 游戏打不来 现实这个,win7 64位....
  3. 个人投资者金融期货开户的条件
  4. 智慧停车系统源码-后台全开源的商业级智慧停车系统源码-YunParking
  5. Matlab 绘制柱状图并标注对应数字值
  6. git拉取远程仓库命令代码
  7. 常见6种视频文件格式的优缺点归纳
  8. 微服务网关SpringCloud Gateway
  9. R数据分析:方法与案例详解--自学笔记
  10. Windows必备程序 | CleanMyPC安装教程