光学字符识别OCR-2
灰度聚类
接着我们就对图像的色彩进行聚类。聚类的有两个事实依据:
1.灰度分辨率 肉眼的灰度分辨率大概为40,因此对于像素值254和255,在我们肉眼看来都 只是白色;
2.设计原则 根据我们一般的审美原则,在考虑海报设计、服装搭配等搭配的时候,一般要 求在服装、海报等颜色搭配不超过三种颜色。
更通俗地说,虽然灰度图片色阶范围是[0, 255],但我们能感觉到的整体的色调一般不多,因此,可以将相近的色阶归为一类,从而减少颜色分布,有效地降低噪音。
事实上,聚类是根据图像的特点自适应地进行多值化的过程,避免了传统的简单二值化所带来 的信息损失。由于我们需要自动地确定聚类数目,因此传统的KMeans等聚类方法被我们抛弃 了,而且经过我们测试,诸如MeanShift等可行的聚类方法又存在速度较慢等缺陷。因此,我们 自行设计了聚类方法,使用的是“核概率密度估计”的思路,通过求颜色密度极值的方式来聚类。
核密度估计 经过预处理的图像,我们可以对每个色阶的出现次数进行统计,根据色戒,得到如图5的频率分布直方图:
可以看到,色阶的分布形成了几个比较突出的峰,换言之,存在一定的聚类趋势。 然而,直方 图的统计结果是不连续的,一个平滑的结果更便于我们分析研究,结果也更有说服力。 将统计 结果平滑化的方法,就是核密度估计(kernel density estimation)。
核密度估计方法是一种非参数估计方法,由Rosenblatt和Parzen提出,在统计学理论和应用领 域均受到高度的重视[2]。 当然,也可以简单地将它看成一种函数平滑方式。 我们根据大量的数据 来估计某个值出现的概率(密度)时,事实上做的是如下估算:
其中K(x)称为核函数。 当 取为1,且K(x)取
时,就是我们上述的直方图估计。 K(x)这一项的含义很简单,它就是告诉我们在范围h内的都算入到x中去,至于怎么算,由
给出。可见,h的选择对结果的影响很大,h我们称之为带宽(bandwidth),它主要影响结果的平滑性。 如果K(x)是离散的,得到的结果还是离散的,但如果K(x)是光滑的,得到的结果也是比较光滑的。一个常用的光滑函数核是高斯核:
所得到的估计也叫高斯核密度估计。 在这里,我们使用scott规则自适应地选取 ,但需要手动指定一个平滑因子,在本文中,我们选取为0。2。对于示例图片,我们得到如图6的红色曲线的结果。
极大极小值分割
从图6中我们进一步可以看出,图像确实存在着聚类趋势。 这表现为它有几个明显的极大值和极 小值点,这里的极大值点位于x = 10, 57, 97, 123, 154,极小值点位于25, 71, 121, 142。
因此,一个很自然的聚类方法是:有多少个极大值点,就聚为多少类,并且以极小值点作为类 别之间的边界。 也就是说,对于图3,可以将图像分层5层,逐层处理。 分层之后,每一层的形状 如下图,其中白色是1,黑色是0。
通过聚类将图像分为5个图层
可见,由于“对比度”和“渐变性”假设,通过聚类确实可以将文字图层通过核密度估计的聚类方 法分离开来。 而且,通过聚类分层的思路,无需对文字颜色作任何假定,即便是文字颜色跟背 景颜色一致时,也可以获得有效检测。
逐层识别
当图像有效地进行分层后,我们就可以根据前面的假设,进一步设计相应的模型,通过逐层处 理的方式找出图像中的文字区域。
光学字符识别OCR-2的更多相关文章
- 光学字符识别OCR
1.功能: 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程 2.典型应用: 名片扫描 3 ...
- 6 个优秀的开源 OCR 光学字符识别工具
转自:http://sigvc.org/bbs/thread-870-1-1.html 纸张在许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显 ...
- 开源OCR光学字符识别
纸张在 许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显着的转变.在计算机软件的帮助 下,包含大量重要管理数据和资讯的文档可以更方便的以电子形 ...
- 字符识别OCR研究一(模板匹配&BP神经网络训练)
摘 要 在MATLAB环境下利用USB摄像头採集字符图像.读取一帧保存为图像.然后对读取保存的字符图像,灰度化.二值化,在此基础上做倾斜矫正.对矫正的图像进行滤波平滑处理,然后对字符区域进行提取切割出 ...
- Ocrad.js – JS 实现 OCR 光学字符识别
Ocrad.js 相当于是 Ocrad 项目的纯 JavaScript 版本,使用 Emscripten 自动转换.这是一个简单的 OCR (光学字符识别)程序,可以扫描图像中的文字回文本. 不像 G ...
- IT行业新名词--透明手机/OCR(光学字符识别)/夹背电池
透明手机 机身设计的一大关键部分是可替换玻璃的使用,利用导电技术,在看不到线路的环境下,让LED发光. 这样的玻璃内含液晶分子,对于内容的显示则是通过电流对分子的刺激来实现.当手机断电后,分子位置会随 ...
- 非黑即白--谷歌OCR光学字符识别
# coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...
- OCR技术(光学字符识别)
什么是OCR? OCR英文全称是optical character recognition,中文叫光学字符识别.它是利用光学技术和计算机技术把印在或者写在纸上的 文字读取出来,并转换成一种计算机能够接 ...
- OCR (Optical Character Recognition,光学字符识别)
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形状翻译 ...
- OCR 即 光学字符识别
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形状翻译 ...
随机推荐
- 使用Robot类模拟鼠标、键盘事件
Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...
- 【js类库Raphaël】使用raphael.js根据点坐标绘制平滑曲线
一.可供参考的文档资料. raphaeljs官网:http://raphaeljs.com/ w3c关于path的介绍:http://www.w3.org/TR/2003/REC-SVG11-200 ...
- 初识RatingBar
RatingBar,SeekBar和ProgressBar的子类 <RatingBar android:id="@+id/ratingBar2" android:layout ...
- Git命令图片版
- 实现strcpy函数
不使用库函数,实现strcpy函数: char *my_strcpy(char *t,char *s){ char *strDest=t; if(t==NULL && s==NULL) ...
- 程序员的智囊库系列之3--分布式文件系统(Distributed file systems)
程序员的智囊库系列之3--分布式文件系统(Distributed file systems) 这是程序员的智囊库系列的第三篇文章.上一篇文章本来打算介绍几个搭建网站的框架,但由于这部分的内容较多,还需 ...
- .net后台使用post方式对指定地址的方法传值并且获取结果的方法
/// <summary> /// .net 后台 post http地址请求 /// </summary> /// <param name="uri" ...
- python 与 json
+-------------------+---------------+ | Python | JSON | +================= ...
- java中的String对象的创建及堆栈的解释
java中的string真的是很令人头疼呢!!! 请看这里 看这里
- 如何下载js类库
https://bower.io/ 这个已经淘汰 https://learn.jquery.com/jquery-ui/environments/bower/ Web sites are made ...