基于图像梯度的标记点生成算法是什么?
基于图像梯度的标记点生成算法是什么?
分水岭算法分割结果的好环依赖于注水点(标记点)的位置选取,Vincent将每个局部极小值作为标记,由于地物目标本身的纹理以及噪声的存在等原因,同一目标仍然会有多个极小值点,仍将产生严重的过分割现象,许多研究者提出了不同的算法改进标记的选取。
Shafarenko等通过对原图像进行形态学“闭”运算来对伪谷底进行填充,以获取更有意义的局部极值点作为标记; Lezoray 和Cardot从贝叶斯分类器分类的结果中选取标记:席英采用Canny算子对原始图像进行边缘检测,用边缘检测得到的二值图像作为标记图像,用标记图像限制修改梯度图像,然后再对修改后的梯度图像进行分水岭分割。巫兆聪等利用高斯低通滤波和概率统计相结合的方法,对梯度图像进行区域自适应阈值分割,提取分割标记,然后采用Meyer算法进行标记分水岭分割。
这些改进方法的思想都是在进行分水岭分割时,既要保证区域内的均质性,又能使区域间的异质性得到充分体现,所以在变化较小的区域有较少的标记点,在变化较大的区域有较多的标记点。为此目的,借鉴已有研究,本书提出一个较为简单的种子点生成算法:以梯度图像为依据,通过多阈值限定,自动生成适合的标记点。具体算法如下。
(1)对原图像img0进行高斯低通滤波,消除噪声。
(2)将去噪后的图像转换为灰度图像img1,利用Sobel 算子计算每个像元的梯度,得到梯度图像img2。
(3)将梯度图像中平缓区域选为标记点,即对img2做阈值分割(小于threshold1)得到标记点图像img3。
(4)利用数学形态学腐蚀运算,将img3中的零散标记点去除,得到图像img4=img3B,腐蚀算子。
(5)对img4中的非标记点区域,按一定密度随机插入标记点,得标记点图像ing.
(6)由于边界上的标记点生成的区域不会被合并到相邻对象中,而这些区域又不应出现,所以需要将边界上的标记点去除,即img2中大于theshold2 的标记点去除,得到最终的标记点图像img6。
(7)以ing6作为标记点,进行分水岭分制,得到标记的分制图像img7,该图像中以记号标记每个像元所属区域,并形成1像素宽的分水岭。
(8)最后,根据光谱最邻近原则将img7中的分水岭划分到区域中。