【问题标题】:Recognize Text in images using Canny Edge detection in Opencv在 Opencv 中使用 Canny 边缘检测识别图像中的文本
【发布时间】:2017-06-02 17:03:33
【问题描述】:

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

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

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

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

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

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

原图

边缘检测图像

【问题讨论】:

  • 该图像非常形象化,最终可能会被标记为不合适。您可能想用较少的图形图像替换它。此图片显示了您想要解决但可能会冒犯或打扰很多用户的问题。
  • 很抱歉。不是那个意思。这个怎么样?
  • 是的,这更可口。谢谢。

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


【解决方案1】:

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

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

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

【讨论】:

  • 如果你能分享代码,那将是一个很大的帮助
  • 另外,如果文字颜色不同,识别该文字会不会有问题?
  • @thewaywewere 抱歉,不,这是来自商业软件。但是这样的功能实现起来并不痛苦。
  • @TharinduSenanayake:只要它与背景不同。
【解决方案2】:

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

蟒蛇: Simple Digit Recognition OCR in OpenCV-Python

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

【讨论】:

  • 这两个链接没有太大帮助。它们指的是字符被隔离在干净的背景上并且重点是识别的情况,而 OP 显然面临字符提取的问题。
  • @BHawk 学习 img pro 并结合机器学习从最基础开始,你能告诉从哪里开始吗?
  • @Dev_Man 我认为一个很好的起点是这本书:“Hands on machine learning with Scikit-learn and Tensorflow”。它很好地介绍了您可以自己编码的许多不同的机器学习应用程序(图像处理和其他)。如果您愿意学习 ML,它还会解释其背后的数学原理。
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多