Opencv 中的噪声消除

发布于 2024-12-23 04:24:35 字数 190 浏览 2 评论 0原文

我目前正在从事一个需要消除文档图像噪声的项目。但我无法创建任何有用的代码来启动我的项目。谢谢。

根据我的研究,故障扫描仪中产生的噪声(特别是盐/胡椒噪声)可以通过 k-Fill 算法消除,但我无法理解该理论。

我在 C++ 和 Codeblocks IDE 中使用 OpenCV。 我是图像处理领域的新手。 感谢源代码或任何相关链接。

I'm currently working in a project where noise removal in document image is required. But i cant create any useful code to start my project. thanks.

According to what I've studied, noise (specifically salt/pepper noise) that produce in faulty scanner can be removed by k-Fill algorithm, but i can't understand that theory.

I'm using OpenCV in C++ , and Codeblocks IDE.
I'm new in the world of image processing.
Source code or any related link/s are appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

避讳 2024-12-30 04:24:35

如果您不理解 k-fill,请先尝试使用更简单的方法。

<一href="http://www.google.hu/url?sa=t&rct=j&q=k-fill%20algorithm&source=web&cd=1&ved=0CB4QFjAA&url=http://figmen t.cse.usf.edu/~sfefilat/data/papers/TuAT10.44.pdf&ei=nRP7TuLyMYXgtQbS45zbDw&usg=AFQjCNE_RhqeZqdZk3KNBFzuoXWejR4k7Q&cad=rja" rel="nofollow">这里是一篇关于替代降噪算法及其性能的文章。

我建议您尝试打开
OpenCV 文档有关于内置的简短说明形态学运算。您也可以使用示例代码进行实验。

If you do not understand k-fill try to use a simpler approach first.

Here is an article of alternative noise reduction algorithms with their performances.

I would suggest you to take a try with opening.
The OpenCV documentation has a short explanation on built-in morphological operations. You can make experiments with the example code as well.

安静被遗忘 2024-12-30 04:24:35

K-filter,是不是很难理解。
选取一个小区域(ea 3x3 像素或 5x5 像素左右)。
现在计算边框上“启用”(ea 暗)像素。
如果总计数大于 n,则填充中心像素(即(3x3 网格)上的单个像素。并在整个图像上重复此操作。或者删除它,如果总边框低于 n

K-filter, isnt that hard to understand.
Take a small area (ea 3x3 pixels or 5x5 pixels or so).
Now count the 'enabled' (ea dark) pixels on the border.
If total count is greater then n, fill central pixel(s) (which is a single pixel on (3x3 grid). and repeat this on the whole image. Or delete it, if total border is lower then n

深巷少女 2024-12-30 04:24:35

我不知道k-fill的效果如何;但是,

我解释一下;它可能对其他人有用:
我将给出一个Python的例子,但CPlusPlus和Java应该是相似的(我不知道)
减少噪声的一种方法是中值滤波器算法,这肯定会降低图像质量。该质量下降多少取决于 ksize 参数。您必须为此参数选择一个较小的数字(例如 3);这使得质量不会太低。消除非常小的噪音。

import cv2
im = cv2.imread("noisy_flower.png")
im = cv2.medianBlur(im, ksize=5)
cv2.imwrite("clean_flower.png", im)

输入图片此处描述

此模式适用于图像。对于照片内的文本,您可以创建蒙版并根据蒙版将文本复制回最终图像。这很大程度上取决于你的情况。


Java版本:

Imgproc.medianBlur(src, dst, 5);

I do not know how effective k-fill can be; But,

I explain this; it might be useful for someone else:
I will give an example with Python but CPlusPlus and Java should be similar (I do not know)
One way to reduce noise is the medianFilter algorithm, which definitely reduces image quality. How much this quality decreases depends on the ksize parameter. You must select a small number for this parameter (for example 3); This makes the quality not too low. Eliminates very small noise.

import cv2
im = cv2.imread("noisy_flower.png")
im = cv2.medianBlur(im, ksize=5)
cv2.imwrite("clean_flower.png", im)

enter image description here

This mode is applicable to images. For the text inside a photo, you may be able to create a mask and copy the text back to the final image according to the mask. It depends a lot on your case.


Java Version:

Imgproc.medianBlur(src, dst, 5);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文