【问题标题】:C# how to use OpenCV to remove noise of a captcha?C#如何使用OpenCV去除验证码的噪音?
【发布时间】:2020-03-31 20:38:47
【问题描述】:

我正在尝试学习如何去除验证码图像的噪点。我开始尝试在图像中寻找模式。

1) 背景总是橙色的:

2) 字体相同,尺寸相同。

现在是时候尝试消除噪音了,但在我的搜索中,我无法理解如何使用我拥有的验证码有效地消除噪音。

我熟悉 C#,并且正在阅读有关 OpenCV 的信息,如何使用它来去除我拥有的图像中的噪点?

【问题讨论】:

    标签: c# image opencv image-processing captcha


    【解决方案1】:

    这是一个非常简单的方法:

    1. 获取二值图像。加载图像,转换为灰度,自适应阈值。

    2. 隔离所需的字符。执行形态打开以去除椒盐噪声。

    3. 去除小噪声。查找轮廓并使用轮廓区域进行过滤。

    4. 反转图像。我们反转图像的原因是因为在执行 OCR 时,我们希望 所需的文本为黑色,背景为白色。 p>


    这是每个步骤的可视化:

    二值图像

    变形开口+轮廓区域过滤

    反转图像以获得结果

    这是其他图像的输出

    我在 python 中实现了这个方法,但你可以将相同的策略应用到 C#中

    import cv2
    
    # Load image, grayscale, adaptive threshold
    image = cv2.imread('1.png')
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,3)
    
    # Morph open
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
    opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1)
    
    # Remove noise by filtering using contour area
    cnts = cv2.findContours(opening, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    cnts = cnts[0] if len(cnts) == 2 else cnts[1]
    for c in cnts:
        area = cv2.contourArea(c)
        if area < 10:
            cv2.drawContours(opening, [c], -1, (0,0,0), -1)
    
    # Invert image for result
    result = 255 - opening
    
    cv2.imshow('thresh', thresh)
    cv2.imshow('opening', opening)
    cv2.imshow('result', result)
    cv2.waitKey()
    

    【讨论】:

    • 非常感谢@Nathancy,写的很详细,对我帮助很大。
    【解决方案2】:

    对于像这样非常二进制的图像,我建议使用 OpenCV 的形态变换。 See here 了解不同类型的描述。 这种转换可能是您想要消除噪音的方法,尽管它会稍微改变字母的形状:

    这称为“开放”,它会侵蚀空白空间(完全擦除像您的噪音这样的小斑点),然后它会扩大剩余的空白空间,因此较大的碎片将保持大致相同的大小。试试thresholding你的图片,然后用不同大小的内核打开看看哪个效果最好。

    Here 是关于形态学打开所需函数的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-03
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2022-10-21
      • 2015-07-10
      相关资源
      最近更新 更多