我想锐化图像,这样图像就可以通过OCR更好地阅读。
为了让它更容易阅读,我用这个代码把图像处理成黑白。
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)
thresh = 127
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1]
cv2.imwrite('bw_image.png', im_bw)
输出如下所示
然后,当我想要通过OCR读取它时,输出不准确。我想读"443,296“和"72,727”。什么代码可以锐化图像,使其能够更准确地阅读?
发布于 2019-06-03 09:54:36
磨利只能让你走到这一步。如果你真的想了解更多细节,你可以探索一下超分辨率神经网络。
您可以很容易地了解这项技术有多好,但根据您的问题,您可能需要一个可以在本地运行的letsenhance.io。我不确定哪个是最好的,但也许是https://github.com/alexjc/neural-enhance
发布于 2019-06-04 03:30:58
我建议试着简单地扩大字符,看看它是否可以提高你的OCR。
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
dilation = cv2.dilate(img,kernel,iterations = 1)
更多关于OpenCV中的形态变换的信息:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html
https://stackoverflow.com/questions/56420281
复制相似问题