使用Opencv中的Canny Edge检测识别图像中的文本

时间:2017-06-02 17:03:33

标签: python opencv image-processing edge-detection text-recognition

我试图从彩色背景图片中提取文字。我尝试的一种方法是边缘检测。使用它我将原始图像转换为我可以使用的图像。这将消除图像中的所有颜色,只留下边缘。

我使用此代码获取边缘图像

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('messi5.jpg',0)
edges = cv2.Canny(img,100,200)

我的问题是在我获得这些图像之后如何跟踪这些图像中的字母?任何帮助都会很棒。谢谢你们

这些是原始和边缘检测到的图像

原始图片

enter image description here

边缘检测图像

enter image description here

2 个答案:

答案 0 :(得分:3)

在此图像上使用边缘检测为时过早,因为角色的边缘会受到背景边缘的污染。

通过选择接近白色的像素,您可以获得以下内容:

enter image description here

有趣的是,许多发表类似问题的人认为边缘检测是灵丹妙药。在我看来,这通常是浪费,区域分割更合适。

答案 1 :(得分:1)

您正处于涉及计算机视觉和机器学习概念的漫长过程的开始阶段。在这里简单,简洁的答案有太多的解释。但是,有很多很好的资源可以在线完成这项工作(见下文):

蟒: Simple Digit Recognition OCR in OpenCV-Python

C ++: https://www.mkompf.com/cplus/emeocv.html