【发布时间】:2019-12-26 09:54:54
【问题描述】:
我正在从教科书中提取突出显示的文本。我已经找到了突出显示并提取了里面的文本。为了处理高光,我将图像转换为灰度,并使用 OTSU 阈值去除背景高亮颜色。 当高光是黄色或绿色等浅色时,这非常有用,但当高光是深色时,阈值处理失败,我得到黑色背景覆盖了大部分文本,这阻碍了 ocr 阅读。
我已尝试将亮度标准化,但似乎不起作用。
我需要一些方法来确定前景色和背景色,然后去除背景色。或者我需要一些方法来动态阈值图像以获得黑色文本和白色背景。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
normalized_gray = cv2.equalizeHist(gray)
(thresh, processed_image) = cv2.threshold(normalized_gray, 127, 255, cv2.THRESH_OTSU)
测试图片: https://ibb.co/856YtMx
一些测试结果:
当我在阈值之前运行 equalizeHist 时。 https://ibb.co/HT0jpKW
当我在阈值化后运行 equalizeHist 时。 https://ibb.co/ZXSz97J
当我使用二进制阈值时,文本被吹走: https://ibb.co/DLXywXz
【问题讨论】: