【问题标题】:Segment text from bad lightining images using python使用python从不良照明图像中分割文本
【发布时间】:2020-01-28 21:52:45
【问题描述】:

我有三种类型的图像,想从中分割文本。所以我得到了一个干净的二值化 img,如下面的第一张图片。三种类型的图片如下

我尝试了各种技术,但总是有一些失败的情况。我首先尝试使用 otsu 算法对 img 进行阈值处理,但它在下面的图像中给出了不好的结果

我尝试了Guassianbilateral 和普通模糊内核,但并没有对结果进行太多提升

任何人都可以提供帮助!

代码是我得到的最好结果

import cv2

gray = cv2.imread("/home/shrouk/Pictures/f2.png", 0)
thresholded = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
cv2.imshow("img", thresholded)

这是我需要的最终结果

这是第一种失败的图像。它失败了,因为图像右侧的文本灰度变浅了

otsu 的结果就在这里,我只需要一个方法来增强右起第三行的单词:

由于背景较暗而失败的第二种类型

otsu 结果不是很好,因为左边的单词看起来像膨胀的单词

这是 otsu 正确阈值的类型,因为没有噪音

【问题讨论】:

    标签: python opencv image-processing image-segmentation text-segmentation


    【解决方案1】:

    尝试使用cv2.adaptiveThreshold()

    import cv2
    
    image = cv2.imread("2.png", 0)
    adaptive = cv2.adaptiveThreshold(image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,5)
    cv2.imshow("adaptive", adaptive)
    cv2.waitKey()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-06
      • 2022-01-24
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多