首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV检测号码

OpenCV检测号码
EN

Stack Overflow用户
提问于 2011-05-03 17:51:59
回答 10查看 55K关注 0票数 20

我在iPhone上使用iPhone,需要检测图像中的数字。我将图像分割成较小的图像,因此每个图像只有一个数字(1-9)。所有的数字都是打印出来的,不是手写的。

用OpenCV计算数字的最佳方法是什么?

更新:

我已经成功地找到了数字并提取了它们。它们看起来是这样的:

http://img198.imageshack.us/img198/5671/101ht.jpg

http://img824.imageshack.us/img824/539/606yu.jpg

当它们被提取时,它们大小相同,依此类推。我保存了一堆图像,并将它们放在OCR dir中,在那里它们被分类为数字。类似: ocr/1/100.jpg 101.jpg.和ocr/2/200.jpg 201.jpg.

然后,我将使用与基本OCR教程中相同的方法:http://blog.damiles.com/?p=93

但是,我正在为iPhone编程,不能使用C++代码(编译错误等等),也无法访问highgui。

我试过使用cvMatchTemplate()并匹配一组图像,但它似乎运行得很糟糕.

还有其他我可以尝试的想法吗?

EN

回答 10

Stack Overflow用户

发布于 2012-05-23 20:09:25

您可以从阅读主成分分析(PCA)、Fisher的线性鉴别分析(LDA)和支持向量机(SVMs)开始。这些分类方法对于OCR非常有用,在任何语言中都有库,包括C++、Python、C#等。

事实证明,OpenCV已经包括了PCAs支持向量机上的优秀实现。我还没有看到OCR的任何OpenCV代码示例,但是您可以使用一些修改过的面部分类版本来执行字符分类。用于OpenCV的人脸识别代码的一个优秀资源是本网站

票数 8
EN

Stack Overflow用户

发布于 2012-03-10 15:15:00

如果数字是打印出来的,工作很简单,你只需要找出一套很好的功能来匹配。如果数字是一种字体,则可以采用以下方法:

  • 提取数字
  • 找到包围盒
  • 将图像缩小到10x8左右,试着匹配高宽比。
  • 对一个小训练集这样做,为每个数字取“平均”图像。
  • 对于新图像,请按照上面的步骤执行,但最后一个步骤只是每个数字模板的绝对图像差异。然后取差异之和(差异图像中的像素)。最少的是你的号码。

以上都是基本的OpenCV操作。

票数 5
EN

Stack Overflow用户

发布于 2012-01-10 14:33:48

基本上,您的问题只是对一个特征向量进行分类,这是经过一些预处理步骤后的像素强度集合。你可以使用任何分类器来完成这个任务,比如。神经网络,它应该在OpenCV内部有一个C实现。您还可以尝试使用用于支持向量机的library库。

有一个与这个问题相关的好场地,有大量的论文和培训数据库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5873566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档