首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OpenCV -去除图像中的噪声

OpenCV -去除图像中的噪声
EN

Stack Overflow用户
提问于 2017-02-16 19:15:43
回答 4查看 26K关注 0票数 23

我有一张照片,上面有一张桌子..在右边的列中,背景充满了杂音

如何检测有噪声的区域?我只想对有噪声的部分应用某种滤镜,因为我需要对其进行OCR,而任何一种滤镜都会降低整体识别率

哪种滤波器对去除图像中的背景噪声效果最好?

如上所述,我需要在图像上做OCR

EN

回答 4

Stack Overflow用户

发布于 2017-02-16 19:21:02

据我所知,中值滤波是降低噪声的最佳解决方案。我建议使用3x3窗口的中值滤波器。请参见函数cv::medianBlur()

但是,当同时使用任何噪声过滤和OCR时要小心。它会导致识别准确率的下降。

另外,我建议尝试使用两个函数(cv::erode()和cv::dilate())。但我不确定它会不会比使用Windows3x3的cv::medianBlur()解决方案更好。

票数 3
EN

Stack Overflow用户

发布于 2017-05-04 22:39:07

如果您非常担心删除像素,这可能会损害您的OCR检测。在不添加人工制品的情况下,尽可能地保持原始图像的纯净。然后,您应该创建一个blob过滤器。并删除小于n个像素左右的任何斑点。

我不打算写代码,但我知道这很好用,因为我自己也使用它,尽管我不使用openCV (出于速度的原因,我编写了自己的多线程blobfilter )。很抱歉,我不能在这里分享我的代码。只是描述如何做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2017-05-05 16:15:00

如果处理时间不是问题,在这种情况下一个非常有效的方法是计算所有黑色连接分量,并删除那些小于几个像素的分量。它将删除所有噪点(除了那些接触有效组件的点),但保留所有字符和文档结构(线条等)。

要使用的函数将是connectedComponentWithStats (在您可能需要生成负片图像之前,带有THRESH_BINARY_INVthreshold函数在本例中将起作用),在找到小的连通组件的位置绘制白色矩形。

事实上,这种方法可以用来查找字符,定义为给定最小和最大大小的连通分量,以及给定范围内的纵横比。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42272384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档