使用 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。您可能需要一种自适应技术(如自适应高斯阈值),但您可能会找到其他适用于您的图像的方法。
我目前正在学习计算机视觉 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。您可能需要一种自适应技术(如自适应高斯阈值),但您可能会找到其他适用于您的图像的方法。