在多年的图像处理工作中, 深感有必要开发一个集图像的显示、变换及各种处理分析测试的工具平台, 这就是Observer----其义在于,我觉得图像的处理与分析很多时候依赖于对图像特征的细致观察。
Observer的开发从2000年一直持续到现在(VC6-VC11), 汇集了比较丰富的功能:
图像格式的支持(最后采用GDI+),也支持pgm,ppm格式;
鼠标移动时象素颜色的跟踪显示;
图像滤波:Gauss,meanshift,bilateral,etc.
图像的几何变换:旋转和放缩及各种插值算法;
灰度图像处理:二值化,形态学运算,小波变换,FFT;
彩色图像处理:亮度和对比度的增强,直方图处理,边缘锐化;
颜色统计和减色算法, 颜色空间的分解,HSV-颜色调整;
图像特定区域的选取及处理:魔棒,多边形;
边缘提取和边缘映象, 图像分割:Canny,meanshift,新的综合方法;
线条的检测跟踪,Hough变换;
批处理测试:格式转换,jpeg重压缩,支持多线程;
数码照片的矫正:定位点识别,数码相机照片和鱼眼镜头矫正
特殊算法的测试:十字绣,车牌映像,卡通素描, 基于灰度的象素抽样(三角剖分)。
关于边缘提取和图像分割
这方面我做了较长时间的研发工作,最初处理卡通图及线条检测,后来扫描图的自动分割,然后
普通照片的分割处理。这三种图像的自动分类主要是基于图像的边界信息的。
扫描图和照片的分割是基于canny的边缘提取算法的,我试验了多种边缘计算方法,最后认定
Canny算法效果最好,其中的一个麻烦问题是较优阈值的自动确定,为此我调试了很长时间才获得
目前的自动分割效果。Observer也允许手工调节阈值,以观察不同的分割结果。
目前学术界认为比较成功的分割算法是meanshift,Observer也提供了实现(源代码从网上获得)。
需要说明的是,meanshift算法的速度是比较慢的。meanshift算法还同时实现了图像滤波。关于滤波,
bilateral方法也是值得关注的。
最近,我尝试实现了一种综合多种方法的自动分割算法,菜单:Process\Segment\X-Segmt.
大家可以比较这些算法的分割结果,有兴趣的可以讨论:xlh9718@QQ.com.
Observer程序在我上传的资源里,解压后可直接运行,里面有简要的使用说明和一些示例图片。
http://download.csdn.net/detail/xlh9718/6655535
演示1. 图像分割(新的综合方法, cat1.png)
当拖动滚动条时,分割结果会跟着变化。
演示2.线条映像(lines.png)
这可以用于图像中的线条跟踪和识别。
演示3.十字绣(Rose5.png)
演示4.鱼眼图像--斑马线的校正
矫正后的斑马线显示为绿色线条。
演示5.导入矢量曲线,并计算两点间的中心路径