matlab 在 ocr 问题中的简单实现
2014-11-12 14:59
197 查看
想到这个问题是朋友提到一个图片识别的问题。我之前只做过,最基本的人脸识别,就是用PCA和LDA的方式进行人脸识别。
碰到具体的比较麻烦的问题,比如这个图片的识别问题,应该用到学习的算法。
而我没有运用过svm或者ann,瞬间觉得自己弱爆了。
所以,就从最基本的出发,做一点简单的ocr问题。简单到什么程度呢:
概括而言:
1、字符之间有间隔可以区分;2、没有线条杂质干扰
我使用,matlab 2013b
对于这个简单的问题,工作流程是这样的:
我再说一下,我的预处理,主要函数:
imread:读图片
rgb2gray:将rgb图片转换成为灰度图
graythresh:选择黑白域
im2bw(imagen, threshold):将灰度图转变为黑白图
bwareaopen(image,30)去除零散的点
进行切分,切分分为了横向和纵向的切分,主要的函数也就是 sum(像素和,切分依据), bwlabel(连接的图), imresize(大小重置)
如果在这么简单的工作之后,就直接用相关系数(corr2)和数字模进行比对,那么久太low了。
可以关注一下, matlab2013是怎么做的。
在matlab2013b中有一个demo,名字叫做HOGDigitClassificationExample。特征的采集时HOG特征,分类器的建立是SVM(每一组的训练集,有100个是的,100个不是的),局限性是只能够识别数字,因为训练的集合就是数字。训练的集合在./toolbox/vision/wisiondemos/digits/synthetic下面。
结果我基本照搬他的方法之后,发现结果不太好。两个原因:1、预处理不对;2、训练集合不太符合要求
但是,我发现测试集合好像还满满足需求的,所以把测试集合当成训练集合就好了哈哈哈哈~~
特征的提取:extractHOGFeatures(img,'CellSize',[4,4])
分类器:svm(trainingFeatures, trainingLabels(:,d))
判定:if svmclassify(svm(digit),testFeatures)==1
实验结果是,总之以上三个图可以识别。。。因为,说了是最简单的ocr问题啊= =
当然matlab2014b里面已经有了ocr函数,高大上的两句话: result = ocr(I), word=results,Words{},已经跪了。。
碰到具体的比较麻烦的问题,比如这个图片的识别问题,应该用到学习的算法。
而我没有运用过svm或者ann,瞬间觉得自己弱爆了。
所以,就从最基本的出发,做一点简单的ocr问题。简单到什么程度呢:
概括而言:
1、字符之间有间隔可以区分;2、没有线条杂质干扰
我使用,matlab 2013b
对于这个简单的问题,工作流程是这样的:
我再说一下,我的预处理,主要函数:
imread:读图片
rgb2gray:将rgb图片转换成为灰度图
graythresh:选择黑白域
im2bw(imagen, threshold):将灰度图转变为黑白图
bwareaopen(image,30)去除零散的点
进行切分,切分分为了横向和纵向的切分,主要的函数也就是 sum(像素和,切分依据), bwlabel(连接的图), imresize(大小重置)
如果在这么简单的工作之后,就直接用相关系数(corr2)和数字模进行比对,那么久太low了。
可以关注一下, matlab2013是怎么做的。
在matlab2013b中有一个demo,名字叫做HOGDigitClassificationExample。特征的采集时HOG特征,分类器的建立是SVM(每一组的训练集,有100个是的,100个不是的),局限性是只能够识别数字,因为训练的集合就是数字。训练的集合在./toolbox/vision/wisiondemos/digits/synthetic下面。
结果我基本照搬他的方法之后,发现结果不太好。两个原因:1、预处理不对;2、训练集合不太符合要求
但是,我发现测试集合好像还满满足需求的,所以把测试集合当成训练集合就好了哈哈哈哈~~
特征的提取:extractHOGFeatures(img,'CellSize',[4,4])
分类器:svm(trainingFeatures, trainingLabels(:,d))
判定:if svmclassify(svm(digit),testFeatures)==1
实验结果是,总之以上三个图可以识别。。。因为,说了是最简单的ocr问题啊= =
当然matlab2014b里面已经有了ocr函数,高大上的两句话: result = ocr(I), word=results,Words{},已经跪了。。
相关文章推荐
- 线性回归问题简单实现matlab
- 简单OCR实现原理 (www.team509.com)
- 在写rss阅读实现的blog的聚合,简单的聚合功能,发现的一点问题
- MyEclipse6.5整合flex实现与java简单通信过程中遇到的问题和注意事项
- 数字图象处理系列问题研究(matlab实现)
- KNN的matlab简单实现代码
- 今天的问题:一个简单的例子,请帮我解开“接口实现Java‘隐藏实现细目’”的迷惑。
- java实现简单的约瑟夫环问题
- 简单的[0/1]背包问题 分别用递归与非递归实现
- 生产者与消费者问题是典型的同步问题。这里简单介绍两种不同的实现方法。
- 【数学建模集训系列】公交查询系统的matlab实现-问题重述
- 排序问题的简单实现!
- 数独问题的一种简单算法代码实现
- 简单背包(无价值总和)问题的实现。
- Spectral Clustering 的简单 Matlab 实现
- 简单实现AJAX: ASP.NET2.0 中回调的实现及常见问题的解决
- 用MATLAB的GUI实现文本的简单加密原理
- SQLSERVER Image类型 Hibernate 映射问题 简单实现
- 原创:Js解析xml文件并简单实现省市区级联菜单(并解决各浏览器兼容性问题).
- Mapreduce 实现简单的倒排索引问题