使用 python opencv 进行 ocr 图像清理

ocr image cleansing with python opencv

我目前正在学习计算机视觉 OCR。我有一张图片需要扫描。我在图像清理过程中遇到问题。

我在 python 中使用 opencv2 来做这些事情。这是原图:

image = cv2.imread(image_path)
cv2.imshow("imageWindow", image)

我要清理上图,中间的数字(64)是我要扫的区域。但是,号码也被清理了。

image[np.where((image > [0,0,105]).all(axis=2))] = [255,255,255]
cv2.imshow("imageWindow", image)

这里要怎么纠正清理呢?我想把数字64所在的屏幕清理干净,因为我之后会进行OCR扫描。

请帮忙,先谢谢了。

您尝试做的事情叫做 "thresholding"。看起来您的技术正在为低于某个阈值的像素重新着色,但该图像中的 LCD 数字暗度变化足以将其丢弃。

我会花一些时间阅读有关阈值的内容,这是一个很好的起点: Thresholding in OpenCV with Python。您可能需要一种自适应技术(如自适应高斯阈值),但您可能会找到其他适用于您的图像的方法。