我有一个打印文本的灰度图像。我想从图像中提取每个字符,以便将它们保存为离散图像。我不想 * 识别 * 字符是什么,我只想每个字形作为一个单独的文件。
我使用cv2
,例如:
# Find contours to isolate individual letters
contours, _ = cv2.findContours(binary_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)`
字符串
这对于连续字符非常有效-也就是说,字形的形状没有中断。
但它不适用于像i
、j
、:
和;
这样的字符--上面的点不包括在内。
有没有办法使用CV 2来检测这些字符?我知道这份文件只使用拉丁字母、数字和标点符号。
该文档使用了相当古老的字体,并且与Tesseract或其他传统的OCR引擎不兼容-这就是为什么我想“检测”单个字母,而不是尝试“识别”它们。
1条答案
按热度按时间4dc9hkyq1#
我使用OpenCV's Erode / Dilate function垂直腐 eclipse 图像。
字符串
它改变了这个:
的数据
变成这样:
的
这将
i
和?
字符上的点连接起来,同时留下足够的水平空间以使检测成为可能。我做了腐 eclipse 的图像上的检测,但应用裁剪到原始图像。