0

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

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

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

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

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

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

原始图像

在此处输入图像描述

边缘检测图像

在此处输入图像描述

4

2 回答 2

3

在此图像上使用边缘检测还为时过早,因为字符的边缘会被背景边缘污染。

以下是通过选择接近白色的像素可以获得的结果:

在此处输入图像描述

有趣的是,许多发布类似问题的人认为边缘检测是万能药。在我看来,这通常是一种浪费,而区域分割更为合适。

于 2017-06-04T15:50:22.683 回答
1

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

python: OpenCV-Python 中的简单数字识别 OCR

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

于 2017-06-02T17:48:38.680 回答