TOC

二值图像的噪点去除算法

众所周知,二值图(前景黑色,背景白色) 由于低熵特性,能玩的花样很少, 很多图像处理算法难以实施在二值图上, 同时由于大部分二值图(传真,商业扫描文档),存在很多噪音, 噪音去除算法是大家比较感兴趣的, 尤其是涉及到OCR识别。

噪音样例

以下是两个样例, 一个噪音较多,一个噪音较少, 注意噪音并不是单点,也包括halftone算法造成的灰度转二值噪音。

--------------------------------------------------------------------

如何处理

大家第一感觉是通过形态学开闭运算解决, 但并没有什么卵用, 哦, 不,有用,但会将有效内容去掉,所以当然是不行的, 而且开闭运算需要两次filter,性能较差。

下面是解决方案, 直接上代码, 多快好省,效果好, 由于太简单, 直接看代码就好了, 算法逻辑就不多说了。
稍微说下, 此算法核心目的是去除噪点同时尽量不丢失有效信息,切记。

//去除二值图噪音, data:图像数据(单通道二值黑白,0黑,0xff白), byteLine:每行字节数, width:宽度,height:高度
int  _removeNoise(unsigned char* data, int byteLine, int width, int height)
{using namespace cv;cv::Size sz(width, height);Mat img(sz, CV_8UC1, data, byteLine);Mat1b imgTmp = img.clone();cv::morphologyEx(imgTmp, imgTmp, cv::MORPH_OPEN, cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3)));imgTmp = 0xff - imgTmp ;Mat kernel = Mat::ones(5, 5, CV_32F) / (float)(25);filter2D(imgTmp , imgTmp , -1, kernel);imgTmp = 0xff - imgTmp ;threshold(imgTmp , imgTmp , 220, 255, THRESH_BINARY);img = img | imgTmp ;return 0;
}

上述代码去除了噪音,同时很好的保留了有效文字信息。

处理结果

--------------------------------------------------------------------

其他说明

上述代码大家应该都能看懂,注意如果噪音过于密集, 请自行调整代码中参数。 最后一个图包含用于OCR的分块处理, 下次有时间另外开贴写。

二值图像的噪点去除算法相关推荐

  1. 脑部CT检查图像检查床去除算法

    1. 前言 对于脑部肿瘤的诊断通常会拍摄患者CT与MRI两种类型的图像,之后结合起来进行分析.但是CT图像中就会出现检查床的区域,首先来看CT扫描设备是什么样子的 可以在图中看到,在头部位置安装有固定 ...

  2. 边缘检测后去除噪点_图片背景处理与噪点去除

    概述 本文主要讲述的是数字图像处理中对图像背景的处理以及图片噪点的去除,运用到的方法有高斯模糊.灰度二值化.连通域检检测 1.算法原理 高斯模糊 引用Wikipedia的两句话: Mathematic ...

  3. 三种不同的文本图像背景漂白/纯化/去除算法

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/14617355.html  ...

  4. 图像暗角阴影去除算法

    暗角的概念 暗角一词属于摄影术语,是指一幅图像的四周的亮度或饱和度相比于中间部分的降低,画面四角有变暗的现象.暗角对于任何相机设置或镜头都不可避免.当然有时会故意引入暗角这种效果. 产生暗角的原因 ( ...

  5. Matlab中寻找二值图像最大联通域的算法

    srcImage为二值图像,里面至少有一个联通域 bwlabel函数对每一个联通域进行标记,得到标记后的图像L,num为联通域的个数 [L,num]=bwlabel(srcImage);        ...

  6. 抠像噪点去除 unity_这个在线抠图工具,好用又免费,告别Photoshop繁杂操作

    对于经常处理图像的人来说,抠图可以算得上一个非常重要的技能,不少时候抠图的过程是非常的繁杂的.说到抠图,相信很多人首先想到的是Photoshop,确实如果说到图像处理,photoshop的确算得上是最 ...

  7. 一种自适应的红色章印去除算法

    一种自适应的红色章印去除工具 ps:转载请说明出处 分享自己研究的一种自适应的红色章印去除工具 Github地址 思路说明: 本方法主要分为三步,第三步可选: 1.找到红色章的灰度值 2.保留字和白底 ...

  8. Opencv去除高光的算法--Highlights Removal

    http://hi.baidu.com/belial/item/9956917a0bb48038714423a2 这篇日志主要是根据文章"实时单幅图片高光去除算法"(篇一)和&qu ...

  9. python去除噪点_如何用python搞定验证码中的噪点

    背景:朋友在为"关山口男子职业技术学校"写一款校园应用,于是找MoonXue写一个学生选课系统的登录接口.为了搞定这个接口,不得不先搞定这个系统的验证码. 验证码大概是这个样子 看 ...

最新文章

  1. 何时使用margin和padding?
  2. Lidar-RCNN:基于稀疏点云的3D目标检测网络(CVPR2021)
  3. EXPLAIN 命令详解
  4. 【超详细】思科实验模拟器EVE的安装与使用,附下载链接
  5. C++学习笔记(五)--指针、NULL、引用
  6. docker 镜像 导入导出
  7. thinkphp增删改查
  8. HDU 2066 一个人的旅行(地杰斯特拉)
  9. linux指令大全(摘自:http://www.3wbmw.cn/archiver/?tid-4706.html)
  10. Vue+websocket+django实现WebSSH demo
  11. solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
  12. MTK平台TP驱动详解
  13. 计算机硬盘会计分录,电脑加装固态硬盘如何做分录
  14. 人脸识别0-03:insightFace-测试集数据制作-史上最全
  15. Python日期推算实操案例
  16. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图...
  17. videojs中文文档详解_HTTP的世界观(附HTTP/3中文翻译)
  18. 使用openstack搭建私有云
  19. 【深度学习】手把手教你使用CNN进行交通标志识别(已开源)
  20. 早期 计算机网络只是包括,计算机网络-判断题.docx

热门文章

  1. 数学建模算法总结——04层次分析法
  2. RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
  3. 好生意还是好故事,这或是快递最后100米的真相
  4. 图片编辑的利器(介绍韩国免费图片工具PhotoScape)
  5. QQ聊天记录器演示程序
  6. 常见的5种项目管理问题类型
  7. kali搭建bind9 dns服务器启动问题:Failed to restart bind9.service: Unit bind9.service not found.
  8. 1046: 奇数的乘积 C语言
  9. 一篇文章教会你利用Python网络爬虫获取穷游攻略
  10. 健身、俱乐部和健身房管理软件系统行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)