如何通过Tesseract OCR读取黑色背景图像上的黑色文本?

5
我有一个黑色背景图上的黑色文本,我想通过OCR来读取它。不幸的是,OCR不能完美地读取它。该图像如下所示:enter image description here 我想将小于(90, 90, 90, 255)的RGBA值转换为(255, 255, 255, 255),使其变为黑白模式。有什么代码可以进行转换?
2个回答

6

在让tesseract操作之前,您需要将整个图像变为黑白。

读取图像

import cv2
im_gray = cv2.imread('your_image_here', cv2.IMREAD_GRAYSCALE)

将其转为灰度图像
(thresh, im_bw) = cv2.threshold(im_gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

"使用Otsu算法自动从图像中确定阈值,或者如果您已经知道阈值,可以使用:"
thresh = 127
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1]

写入磁盘

cv2.imwrite('bw_image.png', im_bw)

Taken from here


当您使用THRESH_OTSU时,自动将THRESH视为零。 cv2.threshold(im_gray, THRESH=0, 255, cv2.THRESH_OTSU) - Milad Shaker

0

您可以通过简单的转换将灰色像素转换为白色像素。 如果您不想使用OpenCV且您的图像是单通道(灰度)NumPy数组:

threshold = 60 # try something between 30 and 150
vect_func = np.vectorize(lambda x: 0 if x == threshold else 255)
black_white_img = vect_func(gray_scale_image)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接