【问题标题】:How to remove noise from an image using pillow?如何使用枕头从图像中去除噪点?
【发布时间】:2020-07-26 10:16:18
【问题描述】:

我正在尝试对我制作的图像进行去噪处理,以便使用 Tesseract 读取图像上的数字。 Noisy image. 有什么办法吗? 我对图像处理有点陌生。

【问题讨论】:

  • 如果能提供原图/非二值化图片就更好了

标签: python python-imaging-library tesseract noise-reduction


【解决方案1】:

你必须阅读 Python 枕头文档

Python 枕头文档链接: https://pillow.readthedocs.io/en/stable/

枕头图片模块: https://pillow.readthedocs.io/en/stable/reference/ImageFilter.html#module-PIL.ImageFilter

如何在 Python 中去除图像中的噪点? 均值滤波器用于模糊图像以去除噪声。它涉及确定 n x n 内核中像素值的平均值。然后将中心元素的像素强度替换为平均值。这消除了图像中的一些噪点并平滑了图像的边缘。

【讨论】:

  • 是的,例如使用均值、中值或高斯过滤图像会去噪。不同的过滤器具有不同的功能(如边缘保留)。话虽这么说,您可能应该在“阈值化”图像之前应用过滤器。所以对灰度图像进行过滤,然后转换为黑白。
  • 显示一样的结果,数字清晰,但是背景真的很乱。
  • 文档链接已损坏。应使用此链接:pillow.readthedocs.io/en/stable/reference/…
  • PIL 不提供任何此类“均值”过滤器。它提供了一个中值和一个模式滤波器。其中,MedianFilter 可能与给定的描述最相似。
【解决方案2】:
from PIL import ImageFilter

im1 = im.filter(ImageFilter.BLUR)

im2 = im.filter(ImageFilter.MinFilter(3))
im3 = im.filter(ImageFilter.MinFilter)  

【讨论】:

  • 虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
【解决方案3】:

Pillow 库提供了可用于增强图像的ImageFilter 模块。根据文档:

ImageFilter 模块包含一组预定义过滤器的定义,可与Image.filter() 方法一起使用。

这些过滤器的工作原理是在图像上传递一个窗口或内核,并计算该框中像素的某些函数来修改像素(通常是中心像素)

MedianFilter 似乎被广泛使用,类似于 nishthaneeraj 的回答中给出的描述。

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 1970-01-01
    • 2014-01-16
    • 2017-03-19
    • 2023-04-10
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    相关资源
    最近更新 更多