1.分析过程

图一 待处理的图像

从上图中可以看出,需要对图片进行处理的分为三个部分,分别是椒盐噪声,两条白线和一条灰线。椒盐噪声可以通过中值滤波器去除。要想去掉三条线,而对图片的其他部分没有影响,则首先需要定位到这三条线。

要定位到这三条白线,则需要找出这三条线与图片上其他横行的区别。首先想到的是这三条线的像素变化很小,即这三条线所在的横行的标准差是最小的。其次,这三条线的同一个颜色占百分之五十以上,因此可以对每一行的统计某一个范围内的像素的数量来判断是白线和灰线。

当定位到这三条线以后,先进行测试一下,确认是否正确,再对线进行消除。为了避免去掉的很近太明显,所以可以参考这条线的上下行的像素来修改该行的像素。这里的上下行不限于紧邻的上下行,也可以是上两行下三行,根据处理的结果来选择最优。

对三条线进行去除以后,接下来去除椒盐噪声。由于去椒盐噪声最好的是中值滤波器,所以这里选择用椒盐滤波器。

此时为了更好的减少在去除白线灰线的操作过程中对图像的影响,可以对图像进行平滑处理,再进行锐化处理。经过这两步的处理可以更好的消除掉白线和灰线。

2.算法

(1)去除白线

因为白线所在的位置基本上大部分是黑灰色系的颜色,而要去除的白色系的颜色,这两种颜色的像素分布在0-255的最两端,容易用一个界限来区分两种颜色。所以去除白色的线时,先来统计每一行某个范围内的像素有多少,如果占这一行像素总数的百分之五十以上,则判定为白线。这里在读取像素的时候,进行了归一化处理,提高精确度,减小误差,否则会有更多的行被判定为白线。当找到白线的时候,将白线这一行的像素赋值为上下行的像素的平均值。上下行的范围是进行测试来确定的,不断改变上下行的范围,取处理结果最好的那次的上下行的范围。为了测试一下代码找到的白线是不是我们想要找的白线,把对白线的像素处理的部分改成这一行都是黑色的。通过测试结果可以看出来程序找到的白线就是我们需要的白线。注释掉的部分就是原先修改白线的部分,为了进行测试将这条线改为黑色。

图三 对找到的白线进行准确性测试的代码

(2)去除灰线

因为图像中这一条灰线最长,并且接近于图像的宽。在图像的其他部分没有哪一行的颜色是不变的,所以在定位灰线的时候使用了标准差。灰线这一行的标准差是最小的部分。但是灰线不一定是一行还是两行,肉眼无法判断,所以这里用一个范围来确定灰线的范围。这里读取像素的时候同样是先进行了归一化。代码中确定灰线的范围设置成了标准差小于0.1的部分。在确定0.1这个范围值的时候,先进行了标准差的排序,将标准差从小到大排列并且输出行数,从最小的几个标准差中可以看到233,234行的标准差是最小的两行,并且与第三小的标准差相差较大,因此就确定了233,234两行为灰线。由于这两行的标准差和其他行的标准差相差较大,所以可以确定灰线的的标准差是范围是小于0.1的。这一部分是在写代码之前进行测试确定的,在最终的代码中没有体现。确定了灰线行以后,对这一行的像素进行处理,同样是取上下行的平均值,这里上下行的范围是不断测试,选择处理结果最好的那次的上下行的范围。这里同样进行测试一下准确性,将修改灰线像素的部分改成这条线为黑色,从结果可以看出是正确的。这里的处理方法同白线的处理方法。

图三 对找到的灰线进行准确性测试的代码

(3)去椒盐噪声

椒盐噪声的特点就是某个点的像素特别大或者特别小,所以取3x3的中值的话是不会取到椒盐噪声这个点的。用3x3的时候注意不需要处理边界。

(4)平滑和锐化处理

平滑采用的是opencv自带的函数GaussianBlur,该函数的平滑原理是高斯滤波器。锐化使用的是定义函数。该函数使用的是拉普拉斯算子,不断调试可以得到一个比较好的效果,最终采用的是[0,-0.7,0,-0.7,4.3,-0.7,0,-0.7,0],提高算子中间的系数就是4.3这个数,可以让图像变亮。本程序最终处理的图像比原图像要亮一些。

程序代码下载见个人的资源上传。

girl_noise.jpg恢复去噪相关推荐

  1. 最新!图像去噪综合比较研究

    图像去噪是计算机视觉领域的传统方向,对于可见光图像.视频.核磁图像等的处理仍应用广泛,在工业和学术界引起很多人的关注,基于BM3D(block-matching 3D ,2007)框架的系列算法是该领 ...

  2. matlab 股票 小波,小波分析 + 支持向量机(SVM)预测股票涨跌幅的实现

    刚刚开始进入量化投资领域,最近在做金融数据方面的预测,用到了数据挖掘的知识,花了大概半个月的时间搞懂研报的思想,学习研报中提到的数据处理和机器学习算法,并实现了这个量化投资的核心模型部分,虽然结果显示 ...

  3. 扩散模型与生成模型详解

    扩散模型与其他生成模型 什么是扩散模型 扩散模型的简介 生成建模是理解自然数据分布的开创性任务之一.VAE.GAN和Flow系列模型因其实用性能而在过去几年中占据了该领域的主导地位.尽管取得了商业上的 ...

  4. Filter-enhanced MLP is All You Need for Sequential Recommendation论文阅读笔记

    Filter-enhanced MLP is All You Need for Sequential Recommendation 代码和数据:https://github.com/RUCAIBox/ ...

  5. Google 机器学习术语表

    原文:Google机器学习术语表 机器学习术语表 本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义. A A/B 测试 (A/B testing) 一种统计方法,用于将两种或 ...

  6. ETH联合Meta和鲁汶大学 提出视频恢复算法VRT,在视频超分辨率、去模糊和去噪性能达到SOTA...

    关注公众号,发现CV技术之美 ✎ 编 者 言  该论文为将Swin Transformer应用于单图超分中的SwinIR的视频扩展版本,在视频复原的各领域中都有很大的提升,本文将从视频超分方向来解读V ...

  7. 图像恢复(加噪与去噪)

    人工智能导论实验导航 实验一:斑马问题 https://blog.csdn.net/weixin_46291251/article/details/122246347 实验二:图像恢复 https:/ ...

  8. 【去噪去模糊去雨】Multi-Stage Progressive Image Restoration 多阶段渐进式通用图像恢复【CVPR2021】

    论文:[CVPR2021]Multi-Stage Progressive Image Restoration 多阶段渐进式通用图像恢复 参考:多阶段渐进式图像恢复 | 去雨.去噪.去模糊 | 有效教程 ...

  9. 多阶段渐进式图像恢复 | 去雨、去噪、去模糊 | 有效教程(附源码)|【CVPR 2021】

最新文章

  1. 简单实现ConfigurationManager.AppSettings[]效果存储系统变量
  2. 软件安装——internal error2503/2502
  3. CSS继承选择器与包含选择器的比较
  4. 遍历NSMutableDictionary NSMutableArray
  5. 民生银行马坡数据中心基础设施Uptime Mamp;O运营管理体系建立与实施
  6. 一个想法:走向“纳什均衡”是普遍存在的大趋势
  7. Linux网络编程——I/O复用之select详解
  8. java类的设计技巧
  9. linux的日志系统,Linux上的日志系统
  10. 如何过滤 adb logcat 命令的输出
  11. CCF认证2014-9-2 画图
  12. Kubernetes系列——Kubernetes 组件、对象(二)
  13. PPT中的文字怎么填充为图片?学会这个方法少走不少弯路
  14. 怎么写专利更容易通过?
  15. 微信小程序—轮播图+背景变化
  16. android浏览器自动全屏,Android开发实现浏览器全屏显示功能
  17. vs工程生成自定义图标的exe
  18. OpenCASCADE:OCCT应用框架OCAF之XML支持
  19. 〖Python接口自动化测试实战篇⑦〗- 接口抓包工具 Fiddler 的使用
  20. Tackling High Dimensional Nonseparable Optimization Problems By CCPSO

热门文章

  1. fwr310虚拟服务器设置,fast迅捷FWR310无线路由器设置图文教程
  2. 融合算法性能评价指标
  3. IMCO正品行货机使用问题汇总与解答
  4. 《我是黑社会》--郭德纲相声
  5. 有趣又实用的软件,给生活增添趣味
  6. 图片标签和图片格式~
  7. 最方便的短信发送平台:中国网建
  8. HTML邮件制作心得
  9. 白杨SEO:百度上收录高的平台有哪些?如何找到和使用它们实战举例【干货】
  10. 为季前卡牌游戏 MotoGP™ Ignition Champions 做好准备!