【问题标题】:remove other color/ noise by using opencv使用 opencv 去除其他颜色/噪声
【发布时间】:2019-07-10 03:11:41
【问题描述】:

我正在研究如何从文本中去除背景噪音,我已经知道这些文本会有固定的颜色,但噪音可能会有很大的不同。

例如,我想从图像中删除其余部分,但只保留文本“现在就做!”,我的计划是先对这张图像进行预处理,去除噪点,然后发送处理后的图像要进行 tesseract 进行 OCR,请参见此处的图片:

我是opencv的新手,对opencv有一些基础知识,谁能给我指个方向,让我学习一下?

目前,tesseract 无法从这张图片中检测到任何文字

[from PIL import Image
from pytesseract import *

if __name__ =="__main__":
    pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
    print(pytesseract.image_to_string(Image.open('test.png'))) # print nothing here.

【问题讨论】:

  • 可以提供图片吗?
  • 谢谢@Zhubei-Federer,我没有足够的信用在这里发布图片,但我已经添加了图片链接

标签: python opencv


【解决方案1】:

你可以使用 hsv 掩码:

def img_hsv_mask(img):
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)           
    lower_hsv = np.array([0, 0, 150])           
    upper_hsv = np.array([255, 20, 255])         
    mask = cv2.inRange(hsv, lower_hsv, upper_hsv) 
    cv2.imshow("mask", mask)
    cv2.waitKey (0)

输出掩码图像如下:

现在您可以将 OCR 与蒙版图像一起使用:

code = pytesseract.image_to_string(mask, lang='eng')
print(code)
>>~ Do itnow

【讨论】:

  • 谢谢,现在我正在研究如何将您的回复标记为答案。
  • 还有一个问题,你怎么知道参数[0,0,150]和[255,20,255]是正确的值?我在google上搜索了hsv颜色并试图将其转换回RGB,但这只是让我更加困惑,非常感谢
  • 也许你可以参考这个页面:colorizer.org。 BTW,参数只是试错,大家可以自行调整~
猜你喜欢
  • 2018-07-20
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2014-05-22
  • 2012-03-08
相关资源
最近更新 更多