图像处理基础相关链接
1. 灰度变换:就是值将彩色图像转换成0~255色阶的灰度图
Android提高十六篇之使用NDK把彩图转换灰度图:blog.csdn.net/hellogv/article/details/6094127
从RGB色转为灰度色算法:www.cnblogs.com/NIOS/archive/2009/08/25/1553653.html
2. 二值变换:就是指将灰度图转换成只有黑白两种颜色的二值图像,主要原理就是找到一个阈值,小于该阈值设置为黑色,否则为白色
二值变换的算法有很多,常用的有大津法(Otsu Thresholding):www.labbookpages.co.uk/software/imgProc/otsuThreshold.html
3. 边缘检测:就是指通过边缘检测的方法将二值图像变换成只有边缘像素的轮廓图,便于后期处理(既能减少运算量又能减少干扰)
边缘检测的方法有很多,如sobel算子,canny算子等:blog.csdn.net/cay22/article/details/5591737
(本人也写了一个ucr算子,着机会也分享出来... )
4. Hough变换:这是一个很古老的算法了,可用于检测各种能通过表达式表示的形状,如直线、圆等等。
Hough Transform for Circles:users.ecs.soton.ac.uk/msn/book/new_demo/houghCircles/
hough 变换 :apps.hi.baidu.com/share/detail/22374319
对于背景与前景差分比较大的图片(即亮度比较高),通过大津法获得的二值图效果还是很不错的(如果二值图不理想,轮廓图肯定也就难如人意,解析结果自然不言而喻),但对于那些背景暗淡,与前景有些藕断丝连的图像,canny算子应该是会比大津法效果更好。而且canny算子可以一步将彩色图转换成轮廓图
(算法实现里面也是先转灰度的),关于JAVA实现版本:blog.csdn.net/haohappy2004/article/details/476820 可以很容易移植到Android平台运行。
===================================
关于图像的一些其它常用处理算法(我也还没尝试了,先记在这里):
形态学运算中腐蚀,膨胀,开运算和闭运算:
1. 腐蚀是一种消除边界点,使边界向内部收缩的过程。
可以用来消除小且无意义的物体。
腐蚀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为1,结果图像的该像素为1。否则为0。
结果:使二值图像减小一圈
2. 膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。
可以用来填补物体中的空洞。
膨胀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为0,结果图像的该像素为0。否则为1
结果:使二值图像扩大一圈
3. 先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
4. 先膨胀后腐蚀的过程称为闭运算。
用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
图像的膨胀与腐蚀、细化:www.cnblogs.com/slysky/archive/2011/10/16/2214015.html