极坐标变换定义
我们知道在二维坐标系中,有直角坐标系,也有极坐标系,二者的转换关系是:
如下图:
如图,直角坐标系的圆心与极坐标系的圆心一一对应,且圆弧BA可以通过极坐标变换到极坐标系$\rho=r$的一条直线上,实现由圆形到直线的转换。这往往在一些图像处理中很有用。
more
实际上,我们在图像处理中,往往还不是处理这样的圆弧,而更多的是处理圆环区域。如下,
同理,我们可以把(a)图中的圆环区域1234,转换成矩形区域(b).矩形区域与圆环存在一定的对应关系,区域转换满足:转换前后两区域顶点1234一一对应,转换后的矩形区域宽为圆环内外弧长之差$(\phi_2-\phi_1)\cdot R_2$,高为圆
继续阅读 »
简介
倾斜校正主要有两种,一种是整体倾斜校正,另一种是局部倾斜校正。
由于本文主要研究具有不规则分布的多数字识别,因此只需要关注经过提取后的数字校正问题,也就是图像的局部校正。
矫正算法
目前的校正算法有很多,比如说:
对于整体倾斜校正可以采用统计图像左右两边的平均像素高度,通过计算整体倾斜度来进行校正。
这种方法对于像素较多的图像的处理效果明显,而且实现简单快速,但是对于那些已经经过提取得单一数字图像并不适用,因为此时的图像一般较小,且笔画较细,由于所需信息太少统计后的结果并不正确。
其实校正的核心就是使图像的倾斜度的接近为0,因此可以把它看作是一个最优化问题:
即寻找需要调整多少角度,才能使图像的倾斜度最小
继续阅读 »
简介
所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。
骨架,可以理解为图象的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。
细化删除条件
内部点不能删除
孤立点不能删除
直线端点不能删除
如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除
细化步骤
通过基于数学形态学的腐蚀细化法,通过刚才的删除条件,进行匹配删除,由于是直接判断,省了模板匹配的这一步。
针对3*3的八邻域,进行操作:
|| p3 || p2 || p9 ||
|| p4 || p1 || p8 ||
继续阅读 »
最近闲来无事,打算把之前在其他博客站点写的一些跟tboox项目相关的老文,放到我的个人站点上来
并且整理归纳了下,以前学生时期研究的一些的玩意用到的一些技术,例如(手写识别、分形图像等等什么的。。)
以后就重点吧这个站点,作为我的个人博客主站了。。嘿嘿。
背景
本文,主要介绍我之前在学校时候,研究的一些跟手写数字识别相关的技术心得,主要涉及:数字图像处理、特征提取、神经网络等等相关的一些技术。。
虽然很多用到的还是网上现有的比较成熟的算法,但是在这些基础上,我还是有做了不少算法上的改进的。。
并且为了写这个项目,我当时还特地写了一整套神经网络库,从图像处理开始到最后的识别过程,没有使用任何第三方库,都是从0还是写起
也没
继续阅读 »
我是个幸运的家伙,我一直在暗暗跟自己说,每一段人生的过往我都和一批快乐的小伙伴一起度过。临到毕业季,我还抓住了毕业的尾巴,来到杭州实习,在in这个温暖的大家庭一起和大家度过了最充实最美好的时光。
我还清楚地记得我刚来实习的那几天。自去年收到in的offer,我就准备抽时间来实习,本来想要在1月1日来实习,可是由于毕业论文的因素一直拖到了2月22日,到了要走的那一天,我挑了一些和图像处理相关的书以及一些衣服就坐上了到杭州的无座火车,当时没买到票,就凑合着和人家挤着坐着混混沌沌地来到了杭州。
来到杭州就联系了我的大学同学邹浩,我们叫“耗子”。耗子帮着我一起找了房子,找了一天的时间,累成狗了,主要我预计实习三个月,所以短租不好找,经过
继续阅读 »
在本系列第一篇中,我们分析了 WebRTC-Android 相机采集的实现,本文中我们将分析预览的实现。
有过一定相机开发经验的朋友可能会疑惑,预览还有什么好分析的,不是直接 camera.setPreviewDisplay 或者 camera.setPreviewTexture 就能在 SurfaceView/TextureView 上预览了吗?实际上预览还有更高级的玩法,尤其是需要加上图像处理功能(美颜、特效)时。WebRTC 使用了 OpenGL 进行渲染(预览),涉及下面三个问题:
继续阅读 »
人类视觉系统简直就是一个世界奇迹。看一下接下来的手写体数字序列:
![enter description here][1]
大部分人都能很容易认出这些数字是:504192。你可能觉得这很不靠谱。在我们每个人的大脑中,都有一个初级视觉皮层,也被称为V1。它包含140*10^6个神经元,而这些神经元之间又有百亿种连接。实际上人类视觉活动不是仅仅只有一个V1层,而是由一系列的视觉皮层-V2,V3,V4和V5。这些视觉皮层在逐层地做更复杂的图像处理工作。我们的大脑好比一个超级计算机,通过成千上万年的进化在逐渐地调整参数,来逐渐理解这个可视化的世界。识别手写体数字不是那么容易。我们人类能够很神奇地理解我们的眼睛呈现给我
继续阅读 »
最近在研究算法,发现其实算法也并不是特别难,只要抓住算法的核心思想,再静下心来,都可以自己实现的。在计算机领域,有一些常见的而且又经常使用的算法,这些算法我们应该掌握,比如常见的排序算法;还有一些算法就是特定领域中经常使用的算法了,这些算法我们只有必须使用时再去学习使用就行了,比如图像处理中的快速傅里叶变换算法。
算法定义
让我们来看看算法的定义吧。(以下定义摘自中文维基百科)
在数学和计算机科学/算学之中,算法/演算法/算则法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。
算法中的指令描述的是一个计算,当其运
继续阅读 »
ICO文件就是图标文件啦,图标是什么?我不用说了吧?
毫无疑问,使用ACDSEE此类专业图像处理软件做一个ICO文件是不难的,但是如果您的操作系统没有安装此类图像编辑软件该怎么办呢?那就跟我开始下面的教程吧!
more
在XP下轻松做一个ICO图标
1. 得到一个源文件,网上有的是.JPG;.GIF;.BMP;等等
2. 右键->使用画图进行编辑
3. 编辑图像,将大小修改为 W*W(如65*65)的正方形
4. 文件->另存为
5. 在文件类型中选BMP24位位图(.DLB).
6. 文件->另存为
7. 写上文件名.ICO
继续阅读 »
随着公司的业务的发展有幸接触到OpenCV 这个图形库,这篇文章主要是总结一下在Mac 上使用OpenCV做一个动态的广告植入。
OpenCV 是什么:
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
继续阅读 »