关于分水岭的诗句

2020-11-21 诗句 【 字体: 】 标签 : 诗句,分水岭,关于 浏览量:875万

分水岭算法

分水岭算法的概念与原理

分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。

分水岭的计算过程是一个迭代标注过程。分水岭比较经典的计算方法是LVincent提出的。在该算法中,分水岭计算分两个步骤,一个是排序过程,一个是淹没过程。首先对每个像素的灰度级进行从低到高排序,然后在从低到高实现淹没过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。

分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显然,分水岭表示的是输入图像极大值点。因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,即

g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]^2[f(x,y)-f(x,y-1)]^2}05式中,f(x,y)表示原始图像,grad{}表示梯度运算。

分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化,都会产生过度分割的现象。但同时应当看出,分水岭算法对微弱边缘具有良好的响应,是得到封闭连续边缘的保证的。另外,分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了可能。

为消除分水岭算法产生的过度分割,通常可以采用两种处理方法,一是利用先验知识去除无关边缘信息。二是修改梯度函数使得集水盆只响应想要探测的目标。

为降低分水岭算法产生的过度分割,通常要对梯度函数进行修改,一个简单的方法是对梯度图像进行阈值处理,以消除灰度的微小变化产生的过度分割。即

g(x,y)=max(grad(f(x,y)),gθ)式中,gθ表示阈值。

应用标记的分水岭算法

如果图像中的目标物体是连在一起的,则分割起来会更困难,分水岭算法经常用于处理这类问题,通常会取得比较好的效果。分水岭分割算法把图像看成一副“地形图”,其中亮度比较强的地区像素值较大,而比较暗的地区像素比较小,通过寻找“汇水盆地”和“分水岭界限”,对图像进行分割。

步骤:

1读取图像

2求取图像的边界,在此基础上可直接应用分水岭分割算法,但效果不佳;

3对图像的前景和背景进行标记,其中每个对象内部的前景像素都是相连的,背景里面的每个像素值都不属于任何目标物体;

4计算分割函数,应用分水岭分割算法的实现

注:直接用分水岭分割算法效果并不好,如果在图像中对前景和背景进行标注区别,再应用分水岭算法会取得较好的分割效果。

例步骤:

1读取图像并求取图像的边界。

rgb=imread('yinerjpg');%读取原图像

I=rgb2gray(rgb);%转化为灰度图像

figure;subplot(121)%显示灰度图像

imshow(I)

hy=fspecial('sobel');%sobel算子

hx=hy';

Iy=imfilter(double(I),hy,'replicate');%滤波求y方向边缘

Ix=imfilter(double(I),hx,'replicate');%滤波求x方向边缘

gradmag=sqrt(Ix^2+Iy^2);%求摸

subplot(122);imshow(gradmag,[]),%显示梯度

title('梯度图')

梯度图

2直接使用梯度模值进行分水岭算法(往往会存在过的分割的情况,效果不好)

L=watershed(gradmag);%直接应用分水岭算法

Lrgb=label2rgb(L);%转化为彩色图像

figure;imshow(Lrgb),%显示分割后的图像

title('分水岭变换后的梯度图')

分水岭变换后的梯度图

3分别对前景和背景进行标记:

se=strel('disk',20);%圆形结构元素

Io=imopen(I,se);%形态学开操作

figure;subplot(121)

imshow(Io),%显示执行开操作后的图像

title('开操作后的图像')

Ie=imerode(I,se);%对图像进行腐蚀

Iobr=imreconstruct(Ie,I);%形态学重建

subplot(122);imshow(Iobr),%显示重建后的图像

title('重建后的图像')

执行开操作后的图像腐蚀重建后的图像

Ioc=imclose(Io,se);%形态学关操作

figure;subplot(121)

imshow(Ioc),%显示关操作后的图像

title('关操作后的图像')

Iobrd=imdilate(Iobr,se);%对图像进行膨胀

Iobrcbr=imreconstruct(imcomplement(Iobrd),imcomplement(Iobr));Iobrcbr=imcomplement(Iobrcbr);%图像求反

subplot(122);imshow(Iobrcbr),%显示重建求反后的图像

title('重建求反后的图像')

关操作后的图像膨胀后重建求反图像

fgm=imregionalmax(Iobrcbr);%局部极大值

figure;imshow(fgm),%显示重建后局部极大值图像

title('重建后局部极大值图像')

重建后局部极大值图像

I2=I;

I2(fgm)=255;%局部极大值处像素值设为255

figure;imshow(I2),%在原图上显示极大值区域

title('原图上显示极大值区域')

原图上显示极大值区域

se2=strel(ones(5,5));%结构元素

fgm2=imclose(fgm,se2);%关操作

fgm3=imerode(fgm2,se2);%腐蚀

fgm4=bwareaopen(fgm3,20);%开操作

I3=I;I3(fgm4)=255;%前景处设置为255

figure;subplot(121)

imshow(I3)%显示修改后的极大值区域

title('修改后的极大值区域')

bw=im2bw(Iobrcbr,graythresh(Iobrcbr));%转化为二值图像subplot(122);imshow(bw),%显示二值图像

title('二值图像')

显示修改后的极大值区域二值图像

4进行分水岭变换并显示:

D=bwdist(bw);%计算距离

DL=watershed(D);%分水岭变换

bgm=DL==0;%求取分割边界

figure;imshow(bgm),%显示分割后的边界

title('分割后的边界')

分割后的边界

gradmag2=imimposemin(gradmag,bgm|fgm4);%置最小值

L=watershed(gradmag2);%分水岭变换

I4=I;I4(imdilate(L==0,ones(3,3))|bgm|fgm4)=255;%前景及边界处置255figure;subplot(121)

imshow(I4)%突出前景及边界

title('突出前景及边界')

Lrgb=label2rgb(L,'jet','w','shuffle');%转化为伪彩色图像

subplot(122);imshow(Lrgb)%显示伪彩色图像title('伪彩色图像')

突出前景及边界伪彩色图像

figure;imshow(I),

holdon

himage=imshow(Lrgb);%在原图上显示伪彩色图像set(himage,'AlphaData',03);

title(‘在原图上显示伪彩色图像')

原图上显示伪彩色图像

《过分水岭》是唐代文学家温庭筠的诗作。此诗抒写作者在过分水岭时与溪水的一段因缘及由此产生的感受。语言朴素而似散文,却又颇富情趣。全诗运用人格化的手法,赋予溪水以人的特征,具有人的思想感情。下面是CN人才网为您精心整理的《秋江独钓图》的诗意解析,希望可以帮到您。如果您喜欢的话可以分享给身边的小伙伴们!

分水岭

溪水无情似有情,入山三日得同行。

岭头便是分头处,惜别潺湲一夜声。

阅读全文