新添加功能(直方图的滚动条拖动有点多余,因为已经有两种二值化分割了,分水岭的算法比较复杂,已经超出你的所学范围了,所以选取了稍微简单的金字塔分割,又增添了3中图像处理方法,应该可以满足你们老师的要求了:)):
1.恢复原图
点击“图像处理”子菜单下面的“恢复原图”即可恢复到刚打开图像时的状态。
2.灰度直方图
灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。
3.颜色直方图
直方图中的数值都是统计而来,描述了该图像中关于颜色的数量特征,可以反映图像颜色的统计分布和基本色调;直方图只包含了该图像中某一颜色值出现的频数,而丢失了某象素所在的空间位置信息;任一幅图像都能唯一的给出一幅与它对应的直方图,但不同的图像可能有相同的颜色分布,从而就具有相同的直方图,因此直方图与图像是一对多的关系;如将图像划分为若干个子区域,所有子区域的直方图之和等于全图直方图;一般情况下,由于图像上的背景和前景物体颜色分布明显不同,从而在直方图上会出现双峰特性,但背景和前景颜色较为接近的图像不具有这个特性。
4.金字塔分割
金字塔分割算法由cvPrySegmentation所实现,该函数的使用很简单;需要注意的是图像的尺寸以及金字塔的层数,图像的宽度和高度必须能被2整除,能够被2整除的次数决定了金字塔的最大层数。
金字塔算法处理后:
金字塔算法处理前:
金字塔算法处理后:
5.Candy边缘提取
(1) 图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
(2) 根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。
(3) 类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。
6.轮廓检测
可以参考如下网页:
http://www.360doc.com/content/10/1029/22/10610_65126310.shtml
本程序中的效果如下(先二值化图像,在轮廓提取):