我试图从这个收据的玩具例子做OCR.使用Python 2.7和OpenCV 3.1.
灰度+模糊+外部边缘检测+收据中每个区域的分段(例如"类别",以便稍后查看哪一个标记为 - 在这种情况下是现金 - ).
当图像"倾斜"以便能够正确转换然后"自动"分割收据的每个部分时,我觉得很复杂.
例:
有什么建议吗?
下面的代码是一个示例,直到边缘检测,但收据就像第一个图像.我的问题不是图像文字.是图像的预处理.
任何帮助超过赞赏!:)
import os;
os.chdir() # Put your own directory
import cv2
import numpy as np
image = cv2.imread("Rent-Receipt.jpg", cv2.IMREAD_GRAYSCALE)
blurred = cv2.GaussianBlur(image, (5, 5), 0)
#blurred = cv2.bilateralFilter(gray,9,75,75)
# apply Canny Edge Detection
edged = cv2.Canny(blurred, 0, 20)
#Find external contour
(_,contours, _) = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
Run Code Online (Sandbox Code Playgroud) 有什么好的方法可以分割如下图统一的字符,知道:

另外,我如何检测在给定的边界框中是否有 2 个或更多的字母连接?
我尝试检查宽度 > 高度以检测连接的字符,但它不适用于图像中的蓝色组。
我还尝试了一种基于:文章第 3.4 节 用于分隔字符的分割方法, 但结果不佳。