标记分水岭分割算法

标记分水岭分割算法
标记分水岭分割算法

标记分水岭分割算法

Separating touching objects in an image is one of the more difficult image processing operations. The watershed transform is often applied to this problem. The watershed transform finds "catchment basins"(集水盆) and "watershed ridge lines"(山脊线) in an image by treating it as a surface where light pixels are high and dark pixels are low.

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

Segmentation using the watershed transform works better if you can identify, or "mark," foreground objects and background locations. Marker‐controlled watershed segmentation follows this basic procedure:

直接应用分水岭分割算法的效果往往并不好,如果在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果。基于标记控制的分水岭分割方法有以下基本步骤:

1. Compute a segmentation function. This is an image whose dark regions are the objects you are trying to segment.

1.计算分割函数。图像中较暗的区域是要分割的对象。

2. Compute foreground markers. These are connected blobs of pixels within each of the objects.

2.计算前景标志。这些是每个对象内部连接的斑点像素。

3. Compute background markers. These are pixels that are not part of any object.

3.计算背景标志。这些是不属于任何对象的像素。

4. Modify the segmentation function so that it only has minima at the foreground and background marker locations.

4.修改分割函数,使其仅在前景和后景标记位置有极小值。

5. Compute the watershed transform of the modified segmentation function.

5.对修改后的分割函数做分水岭变换计算。

Use by Matlab Image Processing Toolbox

使用MATLAB图像处理工具箱

注:期间用到了很多图像处理工具箱的函数,例如fspecial、imfilter、watershed、label2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh和imimposemin函数等。

Step 1: Read in the Color Image and Convert it to Grayscale

第一步:读入彩色图像,将其转化成灰度图像

clc; clear all; close all;

rgb = imread('pears.png');

if ndims(rgb) == 3

I = rgb2gray(rgb);

else

I = rgb;

end

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(rgb); title('原图');

subplot(1, 2, 2); imshow(I); title('灰度图');

Step 2: Use the Gradient Magnitude as the Segmentation Function

第2步:将梯度幅值作为分割函数

Use the Sobel edge masks, imfilter, and some simple arithmetic to compute the gradient magnitude. The gradient is high at the borders of the objects and low (mostly) inside the objects.

使用Sobel边缘算子对图像进行水平和垂直方向的滤波,然后求取模值,sobel 算子滤波后的图像在边界处会显示比较大的值,在没有边界处的值会很小。

hy = fspecial('sobel');

hx = hy';

Iy = imfilter(double(I), hy, 'replicate');

Ix = imfilter(double(I), hx, 'replicate');

gradmag = sqrt(Ix.^2 + Iy.^2);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(I,[]), title('灰度图像')

subplot(1, 2, 2); imshow(gradmag,[]), title('梯度幅值图像')

Can you segment the image by using the watershed transform directly on the gradient magnitude?

可否直接对梯度幅值图像使用分水岭算法?

L = watershed(gradmag);

Lrgb = label2rgb(L);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(gradmag,[]), title('梯度幅值图像')

subplot(1, 2, 2); imshow(Lrgb); title('梯度幅值做分水岭变换')

No. Without additional preprocessing such as the marker computations below, using the watershed transform directly often results in "oversegmentation."

直接使用梯度模值图像进行分水岭算法得到的结果往往会存在过度分割的现象。因此通常需要分别对前景对象和背景对象进行标记,以获得更好的分割效果。 Step 3: Mark the Foreground Objects

第3步:标记前景对象

A variety of procedures could be applied here to find the foreground markers, which must be connected blobs of pixels inside each of the foreground objects. In this example you'll use morphological techniques called "opening‐by‐reconstruction" and "closing‐by‐reconstruction" to "clean" up the image. These operations will create flat maxima inside each object that can be located using imregionalmax.

有多种方法可以应用在这里来获得前景标记,这些标记必须是前景对象内部的连接斑点像素。这个例子中,将使用形态学技术“基于开的重建”和“基于闭的重建”来清理图像。这些操作将会在每个对象内部创建单位极大值,使得可以使用imregionalmax来定位。

开运算和闭运算:先腐蚀后膨胀称为开;先膨胀后腐蚀称为闭。开和闭这两种运算可以除去比结构元素小的特定图像细节,同时保证不产生全局几何失真。开运算可以把比结构元素小的突刺滤掉,切断细长搭接而起到分离作用;闭运算可以把比结构元素小的缺口或孔填充上,搭接短的间隔而起到连接作用。

Opening is an erosion followed by a dilation, while opening‐by‐reconstruction is an erosion followed by a morphological reconstruction. Let's compare the two. First, compute the opening using imopen.

开操作是腐蚀后膨胀,基于开的重建(基于重建的开操作)是腐蚀后进行形态学重建。下面比较这两种方式。首先,用imopen做开操作。

se = strel('disk', 20);

Io = imopen(I, se);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(I, []); title('灰度图像');

subplot(1, 2, 2); imshow(Io), title('图像开操作')

Next compute the opening‐by‐reconstruction using imerode and imreconstruct.

接下来,通过腐蚀后重建来做基于开的重建计算。

Ie = imerode(I, se);

Iobr = imreconstruct(Ie, I);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(I, []); title('灰度图像');

subplot(1, 2, 2); imshow(Iobr, []), title('基于开的重建图像')

Following the opening with a closing can remove the dark spots and stem marks. Compare a regular morphological closing with a closing‐by‐reconstruction. First try imclose:

开操作后,接着进行闭操作,可以移除较暗的斑点和枝干标记。对比常规的形态学闭操作和基于闭的重建操作。首先,使用imclose:

Ioc = imclose(Io, se);

Ic = imclose(I, se);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(I, []); title('灰度图像');

subplot(2, 2, 2); imshow(Io, []); title('开操作图像');

subplot(2, 2, 3); imshow(Ic, []); title('闭操作图像');

subplot(2, 2, 4); imshow(Ioc, []), title('开闭操作');

Now use imdilate followed by imreconstruct. Notice you must complement the image inputs and output of imreconstruct. IM2 = imcomplement(IM) computes the complement(补集) of the image IM. IM can be a binary, intensity, or RGB image. IM2 has the same class and size as IM.

现在使用imdilate,然后使用imreconstruct。注意必须对输入图像求补,对imreconstruct输出图像求补。IM2 = imcomplement(IM)计算图像IM的补集。IM 可以是二值图像,或者RGB图像。IM2与IM有着相同的数据类型和大小。 Iobrd = imdilate(Iobr, se);

Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr)); Iobrcbr = imcomplement(Iobrcbr);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(I, []); title('灰度图像');

subplot(2, 2, 2); imshow(Ioc, []); title('开闭操作');

subplot(2, 2, 3); imshow(Iobr, []); title('基于开的重建图像');

subplot(2, 2, 4); imshow(Iobrcbr, []), title('基于闭的重建图像');

As you can see by comparing Iobrcbr with Ioc, reconstruction‐based opening and closing are more effective than standard opening and closing at removing small blemishes without affecting the overall shapes of the objects. Calculate the regional maxima of Iobrcbr to obtain good foreground markers.

通过比较Iobrcbr和loc可以看到,在移除小污点同时不影响对象全局形状的应用下,基于重建的开闭操作要比标准的开闭重建更加有效。计算Iobrcbr的局部极大来得到更好的前景标记。

fgm = imregionalmax(Iobrcbr);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 3, 1); imshow(I, []); title('灰度图像');

subplot(1, 3, 2); imshow(Iobrcbr, []); title('基于重建的开闭操作'); subplot(1, 3, 3); imshow(fgm, []); title('局部极大图像');

To help interpret the result, superimpose(叠加) the foreground marker image on the original image.

为了帮助理解这个结果,叠加前景标记到原图上。

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

It1(fgm) = 255; It2(fgm) = 0; It3(fgm) = 0;

I2 = cat(3, It1, It2, It3);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(rgb, []); title('原图像');

subplot(2, 2, 2); imshow(Iobrcbr, []); title('基于重建的开闭操作'); subplot(2, 2, 3); imshow(fgm, []); title('局部极大图像');

subplot(2, 2, 4); imshow(I2); title('局部极大叠加到原图像');

Notice that some of the mostly‐occluded and shadowed objects are not marked, which means that these objects will not be segmented properly in the end result. Also, the foreground markers in some objects go right up to the objects' edge. That means you should clean the edges of the marker blobs and then shrink them a bit. You can do this by a closing followed by an erosion.

注意到大多闭塞处和阴影对象没有被标记,这就意味着这些对象在结果中将不会得到合理的分割。而且,一些对象的前景标记会一直到对象的边缘。这就意味着应该清理标记斑点的边缘,然后收缩它们。可以通过闭操作和腐蚀操作来完成。

se2 = strel(ones(5,5));

fgm2 = imclose(fgm, se2);

fgm3 = imerode(fgm2, se2);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(Iobrcbr, []); title('基于重建的开闭操作'); subplot(2, 2, 2); imshow(fgm, []); title('局部极大图像');

subplot(2, 2, 3); imshow(fgm2, []); title('闭操作');

subplot(2, 2, 4); imshow(fgm3, []); title('腐蚀操作');

This procedure tends to leave some stray isolated pixels that must be removed. You can do this using bwareaopen, which removes all blobs that have fewer than a

certain number of pixels. BW2 = bwareaopen(BW,P) removes from a binary image all connected components (objects) that have fewer than P pixels, producing another binary image, BW2.

这个过程将会留下一些偏离的孤立像素,应该移除它们。可以使用bwareaopen,用来移除少于特定像素个数的斑点。BW2 = bwareaopen(BW,P)从二值图像中移除所以少于P像素值的连通块,得到另外的二值图像BW2。

fgm4 = bwareaopen(fgm3, 20);

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

It1(fgm4) = 255; It2(fgm4) = 0; It3(fgm4) = 0;

I3 = cat(3, It1, It2, It3);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(I2, []); title('局部极大叠加到原图像'); subplot(2, 2, 2); imshow(fgm3, []); title('闭腐蚀操作');

subplot(2, 2, 3); imshow(fgm4, []); title('去除小斑点操作');

subplot(2, 2, 4); imshow(I3, []); title('修改局部极大叠加到原图像');

Step 4: Compute Background Markers

Now you need to mark the background. In the cleaned‐up image, Iobrcbr, the dark pixels belong to the background, so you could start with a thresholding operation.

第4步:计算背景标记

现在,需要标记背景。在清理后的图像Iobrcbr中,暗像素属于背景,所以可以从阈值操作开始。

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(Iobrcbr, []); title('基于重建的开闭操作'); subplot(1, 2, 2); imshow(bw, []); title('阈值分割');

The background pixels are in black, but ideally we don't want the background markers to be too close to the edges of the objects we are trying to segment. We'll "thin" the background by computing the "skeleton by influence zones", or SKIZ, of the foreground of bw. This can be done by computing the watershed transform of the distance transform of bw, and then looking for the watershed ridge lines (DL == 0) of the result. D = bwdist(BW) computes the Euclidean distance transform of the binary image BW. For each pixel in BW, the distance transform assigns a number that is the distance between that pixel and the nearest nonzero pixel of BW. bwdist uses the Euclidean distance metric by default. BW can have any dimension. D is the same size as BW.

背景像素在黑色区域,但是理想情形下,不必要求背景标记太接近于要分割的对象边缘。通过计算“骨架影响范围”来“细化”背景,或者SKIZ,bw的前景。这个可以通过计算bw的距离变换的分水岭变换来实现,然后寻找结果的分水岭脊线(DL==0)。D = bwdist(BW)计算二值图像BW的欧几里得矩阵。对BW的每一个像素,距离变换指定像素和最近的BW非零像素的距离。bwdist默认使用欧几里得距离公式。BW可以由任意维数,D与BW有同样的大小。

D = bwdist(bw);

DL = watershed(D);

bgm = DL == 0;

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(Iobrcbr, []); title('基于重建的开闭操作'); subplot(2, 2, 2); imshow(bw, []); title('阈值分割');

subplot(2, 2, 3); imshow(label2rgb(DL), []); title('分水岭变换示意图'); subplot(2, 2, 4); imshow(bgm, []); title('分水岭变换脊线图');

Step 5: Compute the Watershed Transform of the Segmentation Function.

The function imimposemin can be used to modify an image so that it has regional minima only in certain desired locations. Here you can use imimposemin to modify the gradient magnitude image so that its only regional minima occur at foreground and background marker pixels.

第5步:计算分割函数的分水岭变换

函数imimposemin可以用来修改图像,使其只是在特定的要求位置有局部极小。这里可以使用imimposemin来修改梯度幅值图像,使其只在前景和后景标记像素有局部极小。

gradmag2 = imimposemin(gradmag, bgm | fgm4);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(2, 2, 1); imshow(bgm, []); title('分水岭变换脊线图');

subplot(2, 2, 2); imshow(fgm4, []); title('前景标记');

subplot(2, 2, 3); imshow(gradmag, []); title('梯度幅值图像');

subplot(2, 2, 4); imshow(gradmag2, []); title('修改梯度幅值图像');

Finally we are ready to compute the watershed‐based segmentation.

最后,可以做基于分水岭的图像分割计算。

Step 6: Visualize the Result

One visualization technique is to superimpose the foreground markers, background markers, and segmented object boundaries on the original image. You can use dilation as needed to make certain aspects, such as the object boundaries, more visible. Object boundaries are located where L == 0.

第6步:查看结果

一个可视化技术是叠加前景标记、背景标记、分割对象边界到初始图像。可以使用膨胀来实现某些要求,比如对象边界,更加清晰可见。对象边界定位于L==0的位置。

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

fgm5 = imdilate(L == 0, ones(3, 3)) | bgm | fgm4;

It1(fgm5) = 255; It2(fgm5) = 0; It3(fgm5) = 0;

I4 = cat(3, It1, It2, It3);

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(rgb, []); title('原图像');

subplot(1, 2, 2); imshow(I4, []); title('标记和对象边缘叠加到原图像');

This visualization illustrates how the locations of the foreground and background markers affect the result. In a couple of locations, partially occluded darker objects were merged with their brighter neighbor objects because the occluded objects did not have foreground markers.

可视化说明了前景和后景标记如何影响结果。在几个位置,部分的较暗对象与它们相邻的较亮的邻接对象相融合,这是因为受遮挡的对象没有前景标记。 Another useful visualization technique is to display the label matrix as a color image. Label matrices, such as those produced by watershed and bwlabel, can be converted to truecolor images for visualization purposes by using label2rgb.

另外一个有用的可视化技术是将标记矩阵作为彩色图像进行显示。标记矩阵,比如通过watershed和bwlabel得到的,可以使用label2rgb转换到真彩图像来显示。 Lrgb = label2rgb(L, 'jet', 'w', 'shuffle');

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(rgb, []); title('原图像');

subplot(1, 2, 2); imshow(Lrgb); title('彩色分水岭标记矩阵');

You can use transparency to superimpose this pseudo‐color label matrix on top of the original intensity image.

可以使用透明度来叠加这个伪彩色标记矩阵在原亮度图像上进行显示。

figure('units', 'normalized', 'position', [0 0 1 1]);

subplot(1, 2, 1); imshow(rgb, []); title('原图像');

subplot(1, 2, 2); imshow(rgb, []); hold on;

himage = imshow(Lrgb);

set(himage, 'AlphaData', 0.3);

title('标记矩阵叠加到原图像');

参考:http://blueben‐https://www.360docs.net/doc/321628172.html,/141881444.html

代码:

clc; clear all; close all;

rgb = imread('pears.png');

if ndims(rgb) == 3

I = rgb2gray(rgb);

else

I = rgb;

end

hy = fspecial('sobel');

hx = hy';

Iy = imfilter(double(I), hy, 'replicate');

Ix = imfilter(double(I), hx, 'replicate');

gradmag = sqrt(Ix.^2 + Iy.^2);

L = watershed(gradmag);

Lrgb = label2rgb(L);

se = strel('disk', 20);

Io = imopen(I, se);

Ie = imerode(I, se);

Iobr = imreconstruct(Ie, I);

Ioc = imclose(Io, se);

Iobrd = imdilate(Iobr, se);

Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr)); Iobrcbr = imcomplement(Iobrcbr);

fgm = imregionalmax(Iobrcbr);

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

It1(fgm) = 255; It2(fgm) = 0; It3(fgm) = 0;

I2 = cat(3, It1, It2, It3);

se2 = strel(ones(5,5));

fgm2 = imclose(fgm, se2);

fgm3 = imerode(fgm2, se2);

fgm4 = bwareaopen(fgm3, 20);

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

It1(fgm4) = 255; It2(fgm4) = 0; It3(fgm4) = 0;

I3 = cat(3, It1, It2, It3);

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

D = bwdist(bw);

DL = watershed(D);

bgm = DL == 0;

gradmag2 = imimposemin(gradmag, bgm | fgm4);

L = watershed(gradmag2);

It1 = rgb(:, :, 1);

It2 = rgb(:, :, 2);

It3 = rgb(:, :, 3);

fgm5 = imdilate(L == 0, ones(3, 3)) | bgm | fgm4;

It1(fgm5) = 255; It2(fgm5) = 0; It3(fgm5) = 0;

I4 = cat(3, It1, It2, It3);

Lrgb = label2rgb(L, 'jet', 'w', 'shuffle');

改进的利用门限的分水岭图像分割算法

2007年第12期福建电脑 改进的利用门限的分水岭图像分割算法 李洪军,王继成 (同济大学计算机系上海201804) 【摘要】:分水岭变换的一些优秀的性质使它在许多不同的图像分割应用中非常常用:它简单并且具有直观性,可以并行实现,并且总是产生完整的图像轮廓。然而,它仍然有许多缺点(过度分割,对噪声敏感,难于检查出细结构物体或者低信噪比的结构)。本文提出一种改进的使用门限的分水岭算法来在不同程度上克服分水岭的这些缺陷。我们把该算法应用在三类图片上,一种具有复杂结构,一种具有低对比度,一种有低的信噪比。本文展示了该算法的分割结果,展示了该算法在这几类图片上出色表现。 【关键词】:图像分割,过度分割,基于沉浸的分水岭算法,标记的分水岭算法 1.前言 1.1分水岭变换 分水岭变换是一种流行的图像分割方法,它来自数学形态学领域[1]。我们把灰度图象看作地形表面,让每一点的像素值代表这点的高度。然后考虑雨水降落到该地表,随着水位不断上升,水会从不同的局部最小点形成汇水盆,而分水岭就是阻挡这些汇水盆相互融合的堤坝。一般情况下,分水岭变换计算的是原始图片的梯度图,这样这些分水岭就正好位于梯度变化大的那些点上。 分水岭变换由于它以下的优点被用在图像处理的许多领域:直观,快速并且可以并行计算,总是产生完整的边界,这样就避免了边界连接的后处理。而且,不少研究人员把分水岭嵌入到多尺度框架中[2]。但是分水岭算法还是有一些致命的缺点,下面列出了最重要的几点[2]。 过度分割。由于大部分图像的梯度图都有许许多多的局部最小,所以分水岭变换的结果是无数的小区域边界,这样的结果毫无意义。通常的解决办法是是使用标记的图片来减少局部最小的数量,即使用带标记的分水岭变换[3]。 对噪声的敏感。局部的一些改变会引起分割结果的明显改变,强烈的噪声有时候使得分水岭变换无法找出真正的边界。其中的一个解决办法是使用各向异性的滤波器。 难以准确检测出低对比度的边界。由于对比度低所以使得信噪比高。所以由于前一个原因,对这种图片分水岭变换仍然无法很好的工作。一般的办法仍然是使用带标记的分水岭变换。而V.Grau提出使用基于MRF的分水岭变换对核磁共振脑灰白质的分割效果更好。 即使是这样,在医学图像分割中,比起近年来兴起的snakemodels和levelset方法,分水岭变换由于分水线总是位于梯度变换最剧烈的地方,并且总是产生完整的边界,从而在对比度低的图像分割中显示出了无可比拟的优势。这使得让分水岭变换能更好的工作是非常有意义的。 1.2本文所做的工作概览 我们提出一种改进的分水岭算法,它极大程度上改善了分水岭变换的表现。第2部分给出了算法。2.1部分给出了分水岭变换的定义,2.2部分给出标记分水岭变换的算法描述,2.3部分给出了我们改进的算法描述。第3部分给出我们的分割结果和其他分割方法的分割结果。3.1部分给出了低对比度的图像的分割结果。我们的分割结果明显优于直接的分水岭分割结果。并且与常用的带标记的分水岭算法分割结果做了比较。3.2部分给出了对于复杂结构的分割结果,我们的分割结果与带标记的分水岭变换的比较。3.3部分给出了对于低信噪比的图像分割结果,并且与经过去噪后的分割结果进行了比较,显示出该算法对噪声的稳定性。第4部分给出了结论和展望。 2.算法 2.1离散图像的分水岭变换的定义及算法描述2.1.1离散图像的分水岭变换的定义 对于分水岭变换,目前存在着几种定义,文献[4]对这些定义进行了归纳,整理。我们这里所采用的定义是基于沉浸的分水岭变换(watershedbyimmersion)。 令f:D'N是一幅灰度图象,它的最大和最小灰度值为h_max和h_min。定义一个从h_min到h_max的水位h不断递增的递归过程。在这个过程中每个与不同的局部最小相关的汇水盆地都不断扩展。定义X(h)记做在水位h时候汇水盆地的集合的并。在h+1层,一个连通分量T(h+1)或者是一个新的局部最小,或者是一个已经存在的X(h)中的一个盆地的扩展。对于后者,按邻接关系计算高度为h+1的每一个点与各汇水盆地的距离。如果一个点与两个个以上的盆地等距离,则它不属于任何盆地,否则它属于与它距离最近的盆地。这样从而产生新的X(h+1)。把在高度h出现的局部最小记作MIN(h)。把Y(h+1,X(h))记作高度为h+1同时属于X(h)的点的集合。 定义2.1(基于沉浸的分水岭变换) 分水岭变换[5]Wshed(f)就是X(h_max)的补集: 2.1.2分水岭算法直观描述 整个算法模拟水平面从最低的地理高度逐渐沉浸到最高的地理高度。这时水会逐渐从各个局部最小中涌出,形成不同的汇水盆地。随着水位不断升高,当两个不同的汇水盆地将融合时,我们使用堤坝把两个盆地分开。这个堤坝足够高,即使水位到最高也无法使相邻的盆地的水汇合。当水位涨到最高时,将完全沉浸地表,这时候那些堤坝就是产生的轮廓线。 2.2带标记的分水岭算法描述 引入标记是为了控制过度分割。一个标记是属于一副图像的连通分量。我们需要找到有与重要对象相联系得内部标记,同时也要找到与背景相联系得外部标记。取得内部标记和外部标记,就可以使用imposition技术[5]使梯度图像的局部最小只在这些标记的地方出现。这样所有的局部最小,即汇水盆地的个数就都是已知的。这时再使用分水岭变换,这样就可以避免过度分割。 2.3本文提出的改进的分水岭算法描述 过度分割是由于过多的局部最小而造成。带标记的分水岭算法是用预处理的办法来控制汇水盆地的数量。而本文中的算法则在算法进行的同时,通过融合一些小的,不值得考虑的汇水盆地,从而来控制盆地的数量。当两个盆地即将连通时,标准的分水岭算法就会在他们之间修堤坝来阻挡汇水盆地的相连通。而本文的算法则要进行判断。我们只认为储水量达到一定程度,并且高度达到一定高度的盆地才是我们所要的盆地。不符合这种要求的盆地我们把他们融合给与其相邻的最大的盆地。我们 77

关于图像分割算法的研究

关于图像分割算法的研究 黄斌 (福州大学物理与信息工程学院 福州 350001) 摘要:图像分割是图像处理中的一个重要问题,也是一个经典难题。因此对于图像分割的研究在过去的四十多年里一直受到人们广泛的重视,也提山了数以千计的不同算法。虽然这些算法大都在不同程度上取得了一定的成功,但是图像分割问题还远远没有解决。本文从图像分割的定义、应用等研究背景入手,深入介绍了目前各种经典的图像分割算法,并在此基础比较了各种算法的优缺点,总结了当前图像分割技术中所面临的挑战,最后展望了其未来值得努力的研究方向。 关键词:图像分割 阀值分割 边缘分割 区域分割 一、 引言 图像分割是图像从处理到分析的转变关键,也是一种基本的计算机视觉技术。通过图像的分割、目标的分离、特征的提取和参数的测量将原始图像转化为更抽象更紧凑的形式,使得更高层的分析和理解成为可能,因此它被称为连接低级视觉和高级视觉的桥梁和纽带。所谓图像分割就是要将图像表示为物理上有意义的连通区域的集合,也就是根据目标与背景的先验知识,对图像中的目标、背景进行标记、定位,然后将目标从背景或其它伪目标中分离出来[1]。 图像分割可以形式化定义如下[2]:令有序集合表示图像区域(像素点集),H 表示为具有相同性质的谓词,图像分割是把I 分割成为n 个区域记为Ri ,i=1,2,…,n ,满足: (1) 1,,,,n i i j i R I R R i j i j ===??≠ (2) (),1,2,,i i i n H R True ?== (3) () ,,,i j i j i j H R R False ?≠= 条件(1)表明分割区域要覆盖整个图像且各区域互不重叠,条件(2)表明每个区域都具有相同性质,条件(3)表明相邻的两个区域性质相异不能合并成一个区域。 自上世纪70年代起,图像分割一直受到人们的高度重视,其应用领域非常广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型的图像。主要表现在: 1)医学影像分析:通过图像分割将医学图像中的不同组织分成不同的区域,以便更好的

基于全卷积网络的图像语义分割算法研究

哈尔滨工业大学工程硕士学位论文 Abstract Because of the development of deep learning and the emergence of fully convolutional networks,the domain of the image semantic segmentation has been rapidly developed.It is widely used in the fields of driverless,medical diagnosis, machine navigation and so on.Driverless technology has been a research hotspot,in this technology,the perception of the environment around the vehicle is the key points.It can classify images on the pixel-level to obtain the overall information of the image,and the semantic segmentation requires the low-cost vision sensors,so it fits the demand of driverless technology. Fully convolutional networks is a feasible and effective image semantic segmentation algorithm.The algorithm innovatively replaces the fully connected layer with the convolutional layer and applies it to the pixel-level classification task. DeepLab is an improved algorithm with the fully convolutional networks and this algorithm has a high accuracy.However,there are still some problems in this algorithm,and there is a great space for improvement.We research each sub-module of the algorithm,then research the problem and give the improvement plan to further improve the accuracy of the algorithm. In order to solve the problem that the DeepLab algorithm does not make full use of global information,resulting in poor results in complex scenes,we introduces the global context information module,this module can provides prior information of complex scenes in the picture,the global context features are extracted and then merged with the local features.This module can improve the expression ability of the features.In order to solve the problem that decoder module of the DeepLab is too simple and the boundary of the predicted result is rough,we design an efficient decoder module,the shallow layer features are fully utilized,the shallow layer features are merged with the deep layer features,and we adjusts the proportion of the deep features and the shallow features,this way can restore some of the details information,and the boundary of the object is optimized.In order to solve the problem that the DeepLab is over fitting the fixed size picture,two effective multi-scale feature level fusion modules are designed by combining the idea of integrated learning with the multi-scale model training,and on this basis,an extra supervision module is introduced,this way can improve the robustness of the algorithm. We mainly use the extended Pascal VOC2012dataset for experiments. Specifically,first we determine the optimal parameter of the improved method,then

图像分割算法的比较与分析

中北大学 课程设计说明书 学生姓名:学号: 学生姓名:学号: 学生姓名:学号: 学生姓名:学号: 学院:信息与通信工程学院 专业:电子信息工程 题目:信息处理综合实践: 图像分割算法的比较与分析 指导教师:陈平职称: 副教授 2014 年12 月29 日

中北大学 课程设计任务书 14/15 学年第一学期 学院:信息与通信工程学院专业:电子信息工程 学生姓名:学号: 课程设计题目:信息处理综合实践: 图像分割算法的比较与分析起迄日期:2015年1月5日~2015年1月16日课程设计地点:电子信息工程专业实验室 指导教师:陈平 系主任:王浩全 下达任务书日期: 2014 年12月29 日课程设计任务书

课程设计任务书

目录 第一章绪论 (1) 研究目的和意义 (1) 图像分割的研究进展 (1) 第二章区域生长法分割图像 (4) 区域生长法介绍 (4) 区域生长法的原理 (4) 区域生长法的实现过程 (5) 第三章程序及结果 (6) 区域生长算法及程序 (6) 图像分割结果 (7) 第四章方法比较 (8) 阈值法 (8) 区域法 (8) 分水岭法 (8) 形态学方法 (9) 第五章总结 (10) 参考文献 (11)

第一章绪论 研究目的和意义 图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。许多不同种类的图像或景物都可作为待分割的图像数据,不同类型的图像,已经有相对应的分割方法对其分割;但某些分割方法只是适合于某些特殊类型的图像分割,所以分割结果的好坏需要根据具体的场合及要求衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对图像的理解。 图像分割是由图像处理到图像分析的关键步骤,在图像工程中占有重要位置。一方面,它是目标表达的基础,对特征测量有重要的影响。另一方面,因为图像分割及其基于分割的目标表达、特征提取和参数测量等将原始图像转化为更抽象、更紧凑的表达形式,使得更高层的图像分析和理解成为可能。因此在实际应用中,图像分割不仅仅要把一幅图像分成满足上面五个条件的各具特性的区域,而且要把其中感兴趣的目标区域提取出来。只有这样才算真正完成了图像分割的任务,为下一步的图像分析做好准备,使更高层的图像分析和理解成为可能。 图像分割在很多方面,如医学图像分析,交通监控等,都有着非常广泛的应用,具有重要的意义。(1)分割的结果常用于图像分析,如不同形式图像的配准与融合,结构的测量,图像重建以及运动跟踪等。(2)在系统仿真,效果评估,图像的3D重建以及三维定位等可视化系统中,图像分割都是预处理的重要步骤。 (3)图像分割可在不丢失有用信息的前提下进行数据压缩,这就降低了传输的带宽,对提高图像在因特网上的传输速度至关重要。(4)分割后的图像与噪声的关系减弱,具有降噪功能,便于图像的理解。 图像分割的研究进展 图像分割是图像处理中的一项关键技术,至今已提出上千种分割算法。但因

基于OpenCV的分水岭分割算法的及应用

基于OpenCV的分水岭分割算法的研究及应用 [摘要]本文对基于形态学分水岭算法进行了深入的研究,并针对其存在的过分割问题对分水岭算 法提出改进:使用区域合并方法限制允许出现的区域的数目,这种改进的方法不仅可以很好地抑制 过分割问题,还能有效分割出图像中的感兴趣区域,以达到提取图像有效边缘信息的目的。将此方 法在OpenCV下进行实验,结果表明这种方法可以有效清除干扰噪声及局部极小值,从而得到精确 的分割结果。 [关键词]分水岭算法;过分割;区域合并;OpenCV [中图分类号]TP391.4[文献标识码]A[文章编号]1008-178X(2012)12-0020-03 燕杨1,2,王云吉2 (1.长春师范学院计算机科学与技术学院,吉林长春 130032;2.吉林大学通信工程学院,吉林长春130022) [收稿日期]2012-07-16 [基金项目]吉林省科技发展计划项目青年科研基金(201201112)。 [作者简介]燕杨(1981-),女,吉林长春人,长春师范学院计算机科学与技术学院讲师,博士研究生,从事数字图像处理研究。第31卷第12期 Vol.31No.12长春师范学院学报(自然科学版)JournalofChangchunNormalUniversity(NaturalScience)2012年12月Dec.2012 1分水岭算法简介 分水岭算法是基于形态学的图像分割方法,其分割特点为定位精确和分割图像边缘准确,在图像分割领域得到了广泛的应用。在许多实际情况下,我们要分割图像,但无法从背景图像中获得有用信息。分水岭算法在这方面往往是有效的,该算法可以将图像中的边缘转化为“山脉”,将均匀区域转化为“山谷”以便分隔目标。分水岭算法先计算灰度图像的梯度,让亮度值低的点(山谷)、山脊对应的边缘(山头)同时形成,然后从指定点开始持续“灌注”盆地,直到这些区域链接在一起。这种方法产生的标记可以把各个区域合并到一起,合并后的区域又通过“聚集”的方式进行分割,好像图像被“填充”起来一样。与 指示点相连的盆地就为指示点“所拥有” ,从而得到被分割成相应的标记区域的图像。分水岭算法允许用户来标记目标某个部分为目标,或背景的某个部分为背景。用户也可以通过画一条简单的线,告知分水岭算法把这些点组合起来。分水岭算法就会通过“拥有”边沿定义的山谷来分割图像。 分水岭算法定位精确且分割细致,对微弱的物体边缘响应比较敏感,能确保得到目标区域封闭连续边缘。但物体表面一些细微的灰度变化以及图像中的噪声干扰等因素皆会导致对图像过度分割的产生,从而产生过多无用的边缘信息。 本文在对分水岭算法进行了深入的研究的基础上针对其过分割的问题提出改进:使用区域合并方法限制允许出现的区域的数目,这样不仅可以有效地抑制过分割问题,还能较好地分割出图像中的目标区域,以达到提取图像有效边缘信息的目的。 2原理 2.1分水岭传统方法 分水岭分割方法是基于拓扑理论的形态学分割方法,它的基本概念是将图像看成地形学上被水覆盖的自然地貌,图像中的每一点像素的灰度值表示这一点海拔的高度,其中每一个局部极小值和它所影响的区域称为集水盆,集水盆的边界形成了分水岭[1];其思想和形成可以通过模拟“溢流”的过程来说明:首先,20··

分水岭算法原理

所谓分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。要搞懂就不容易了。WatershedAlgorithm(分水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分割。现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是我们可爱的分水岭(watershed)。为了得到一个相对集中的集水盆,那么让水涨到都接近周围的最高的山顶就可以了,再涨就要漏水到邻居了,而邻居,嘿嘿,水质不同诶,会混淆自我的。那么这样的话,我们就可以用来获取边界高度大,中间灰阶小的物体区域了,它就是集水盆。浸水法,就是先通过一个适当小的阈值得到起点,即集水盆的底;然后是向周围淹没也就是浸水的过程,直到得到分水岭。当然如果我们要一直淹没到山顶,即是一直处理到图像灰阶最高片,那么,当中就会出现筑坝的情况,不同的集水盆在这里想相遇了,我们要洁身自爱,到这里为止,因为都碰到边界了。不再上山。构筑属于自己的分水岭。在计算机图形学中,可利用灰度表征地貌高。图像中我们可以利用灰度高与地貌高的相似性来研究图像的灰度在空间上的变化。这是空域分析,比如还可以通过各种形式的梯度计算以得到算法的输入,进行浸水处理。分水岭具有很强的边缘检测能力,对微弱的边缘也有较好的效果。为会么这么说呢?为什么有很强的边缘检测能力,而又能得到相对集中的连通的集水盆?现实中很好办,我们在往凹地加水的时候,直到它涨到这一块紧凑的山岭边缘就不加了;但是如果有一条小山沟存在,那没办法,在初始阈值分割的时候,也就是山沟与集水盆有同样的极小值,而且它们之间是以这个高度一直连接的。那没关系,我们将它连通。在图像上呢?如何实现? 看看算法,算法思想是这样的: 首先准备好山和初始的水。这山就是我们的初始图像了,比如用自然获取的图像的梯度来表征山地的每一点的高度吧;而初始的水就是在阈值记为Thre底下,所有的低于这个高度的整个山地都加水,直到这个阈值Thre高度。从而有三个初始量:unsignedchar**Ori_image、 char**Seed_image和int**Label_image。最后一个是为最终的结果做准备的。当然要做好初始化,比如,Ori_image赋值为原图像(256色灰度图)的梯度值,Seed_image则是初始状态下有水的置位,无水的复位,而Label_image则全初始化为0,最终得到的是各点对应的区域号。接下来是考虑将已加的水进行记录,记录成连通的区域,也就是看看有多少个互不相关的集水盆,有五个,那么我们就涨出五个湖,而且尽可能的高,只要大家想到不溢出。在算法上,有多少个连通的区域就记录成多少个数据结构,功夫就在于如何将这些连通的区域连接成一块,并由一个数据结构来表达了。很好,我们准备用一个向量容器来实现初始保存,保存所有标记区域种子队列的数组,里面放的是种子队列的指针vque,而且这个队列是由一系列属于同一个区域的图像点组成,我们来自一个集水盆:);其保存方式是这样的:queue *pque=newqueue[256];(pque),这样便将一个成员放进到这个区域来了,即容器--集水盆的

图像分割常用算法优缺点探析

图像分割常用算法优缺点探析 摘要图像分割是数字图像处理中的重要前期过程,是一项重要的图像分割技术,是图像处理中最基本的技术之一。本文着重介绍了图像分割的常用方法及每种方法中的常用算法,并比较了各自的优缺点,提出了一些改进建议,以期为人们在相关图像数据条件下,根据不同的应用范围选择分割算法时提供依据。 关键词图像分割算法综述 一、引言 图像分割决定了图像分析的最终成败。有效合理的图像分割能够为基于内容的图像检索、对象分析等抽象出十分有用的信息,从而使得更高层的图像理解成为可能。目前图像分割仍然是一个没有得到很好解决的问题,如何提高图像分割的质量得到国内外学者的广泛关注,仍是一个研究热点。 多年来人们对图像分割提出了不同的解释和表达,通俗易懂的定义则表述为:图像分割指的是把一幅图像分割成不同的区域,这些区域在某些图像特征,如边缘、纹理、颜色、亮度等方面是一致的或相似的。 二、几种常用的图像分割算法及其优缺点 (一)大津阈值分割法。 由Otsu于1978年提出大津阈值分割法又称为最大类间方差法。它是一种自动的非参数非监督的门限选取法。该方法的基本思路是选取的t的最佳阈值应当是使得不同类间的分离性最好。它的计算方法是首先计算基于直方图而得到的各分割特征值的发生概率,并以阈值变量t将分割特征值分为两类,然后求出每一类的类内方差及类间方差,选取使得类间方差最大,类内方差最小的t作为最佳阈值。 由于该方法计算简单,在一定条件下不受图像对比度与亮度变化的影响,被认为是阈值自动选取的最优方法。该方法的缺点在于,要求得最佳阈值,需要遍历灰度范围0—(L-1)内的所有像素并计算出方差,当计算量大时效率会很低。同时,在实际图像中,由于图像本身灰度分布以及噪声干扰等因素的影响,仅利用灰度直方

针对卫星图像的语义分割算法研究

哈尔滨工业大学工学硕士学位论文 Abstract With the rapid improvement of satellite technology, satellite images, especially high resolution remote sensing satellite images have been paid great attention by various countries, and have been applied in different fields. Satellite image can extract the relative position and spatial distribution of various natural elements with its rich information and visual image, which provides great space for the development of target semantic segmentation in both civil and military aspects. At the same time, in the wave of artificial intelligence, deep learning has been greatly developed with the ability of computing, which not only brings great changes in the traditional computer vision and robot, but also brings new solutions in such aspects as finance and medical care. Therefore, deep learning is applied to the semantic segmentation of satellite images, which opening up new ideas for military tactics and civilian business planning. In this paper, we use convolution neural network to classify multi resolution satellite images. The main contents of this paper are as follows: Firstly, it summarizes the basic models of deep learning and three characteristics of deep learning, namely, the simplicity, extensibility and mobility of models. The focus is mainly on the conformation, characteristics, research mechanism and development direction of convolution neural network. For the semantic segmentation of satellite images using the learning features of artificial design, the feature design learning is too complicated and the adaptation range is limited. This paper uses convolution neural network to automatically design and extract features. Based on the typical semantic segmentation network, the semantic segmentation network structure of satellite images is designed, which combines the advantages of the existing Convolutional Neural Network (CNN) and the conditional random field (Conditional Random Field, CRF). In view of the small number of images in the satellite image set, and the uneven distribution between classes, this paper adjusts the context semantic environment in the satellite image segmentation network, and combines the rough feature and the fine feature by increasing the jump connection. At the same time, the conditional random field was added to the network output to make the precision more than 16%. In order to improve the network performance, the sample set is preprocessed and added and includ the multispectral image channel synthesis, and the increase of multi remote sensing imaging index. In the view of the difference between the loss function of the convolution neural network in the semantic segmentation process and the traditional classification network, the loss function of the network is improved and the joint loss

几种图像分割算法在CT图像分割上的实现和比较

第20卷第6期2000年12月北京理工大学学报JOurnaI Of Beijing InStitute Of TechnOIOgy VOI.20NO.6Dec.2000 文章编号21001-0645(2000)06-0720-05几种图像分割算法在CT 图像分割上的 实现和比较 杨 加19吴祈耀19田捷29杨骅2(1-北京理工大学电子工程系9北京1000 1;2-中国科学院自动化研究所9北京1000 0)摘要2对目前几种在图像分割领域得到较多应用的交互式分割 区域生长分割以及阈值 分割算法进行了探讨9并且结合实际CT 片图例分别进行分割实验研究9得到较为满意和 可用性强的结果.实验表明2阈值分割对于CT 切片的效果最好;区域生长分割适宜于对面 积不大的区域进行分割9分割效果较好;基于动态规划的交互式分割算法比较复杂9计算时 间较长9但对于边缘较平滑的区域9同样具有较好的实际效果.几种算法的评估为其在CT 图像分割上的实际应用提供了科学依据. 关键词2图像分割算法;CT 图像分割;交互式分割;阈值分割;区域生长分割 中图分类号2TN 911-73文献标识码2A 收稿日期220000625 基金项目2国家自然科学基金资助项目(69 43001);国家 63 计划项目作者简介2杨加9男91975年生9硕士生. 图像分割可以分解为两个任务9即识别(recOgnitiOn )和描绘(deIineatiOn ).识别的目的在于确定目标物体的大致位置并区别于图像中的其它物体;而描绘的任务在于精确定义和刻画图像中目标物体的区域或边缘的空间范围.人的识别能力通常强于计算机算法9另一方面9计算机算法的描绘能力则优于操作者(人).因此既能利用操作者强大的识别能力9又能利用计算机算法的描绘能力的交互式图像分割则越来越受到人们的关注.在医学领域中9图像分割是病变区域提取 特定组织测量以及实现三维重建的基础9因此图像分割技术在医学图像处理中具有十分重要的意义[1].作者探讨了3种目前在图像分割上得到较多实际应用的分割算法9并结合实际CT 片图例进行了实验研究9得到较为满意和可用性强的结果;最后对这几种方法进行了评估9为这些算法在CT 图像分割上的实际应用提供了科学依据. 1 交互式分割算法1-1基本理论及算法描述 动态规划方法最早应用于图像边缘跟踪[2].可以将图像边缘检测看作一个优化问题[3]9并将其表述为找出一目标函数V =V (I 19I 29I 39~9I H )的最优值M (如取最小值min )9得V 取最优值时的一组自变量值(I 19I 29I 39I 49~9I H 9).若变量离散9目标函数没有特定规律可循时9则该问题将包括一个极大的解空间.如果这个目标函数能够描述成如下形式2 V =V (I 19I 29I 39~9I N )=V 0(I 09I 1)+V 1(I 19I 2)+~+V H-1(I H-19I H )

分水岭算法

解决分水岭算法的过分割问题 班级:020751 学号:02075087 姓名:刘恺

摘要针对基于分水岭变换的分割算法通常存在过分割现象,提出了一种新的分割算法,采用形态学的运算去除噪声及背景像素的影响,搜索区域极大值点,将分割定位于目标图像,从而达到很好的分割效果,方法从消除过分割及区域轮廓定位等方面均具有很好的分割效果。 关检词图像分割,分水岭变换,数学形态学 Abstract The article is based on watershed algorithm, proposed a method of image segmentation, adopted the morphology arithmetic to eliminate the effect of noise and background pixel, search for the max point in each area, let segmentation orientate as target image, could reach very good segment effect. The method can efficiently eliminate over-segmentation, and hold the position of region contours without evident bias. Key words image segmentation, watershed transform ,mathematical morphology 1.1图像分割综述 把图像分解为一些特定的性质相似的部分(区域或对象),并用这些部分对图像进行分析和描述。一幅图像往往包含许多不同类型的区域,如物体、环境和背景等。图像分析的一个重要方法就是用它们作为基本组成成分对图像进行描述。例如为了在气泡室图片中检出质点碰撞形式并判定其发生位置,就要在图像中分割出气泡的轨迹及其端点。为了从输入的文本中识别出一串字符,首先就要把各个字符从背景和其他字符中分离出来。因此把图像分割为若干子图像,并利用各子图像的特性和它们之间的关系描述图像,对于图像识别和解释、物景分析以及图像的分块处理和存储都有很大的意义。 图像分割基本上是对像素进行分类的过程。例如用某个灰度阈值把图像像素分成“黑”和“白”两类,就可以把黑的对象同白的背景区分开。常用的分割方法有灰度等级阈值法、谱和空间分类法、区域生长法和边缘检测法。 灰度等级阈值法在图像只有两种组成部分的情况下,图像灰度的直方图常常呈现两个峰值。用两个峰值之间的谷值所对应的灰度作为阈值,把所有像素灰度大于或等于阈值的作为一类,小于阈值的作为另一类是一种最基本的两类分割方法。实际应用时为了改善分类的可靠性,可以利用某些附加的信息(例如已知两类区域的面积之比)使阈值的选择更加合理。在类别更多的情况下,可以采用多级阈值把各类分割开来(例如确定两个阈值,就可以把细胞图像分割为胞核、胞浆和背景三部分)。类别越多,图像直方图的峰值就越不明显,分割就更为困难。 谱和空间分类法对于彩色和多光谱图像,可以用像素的几种性质(颜色和谱信号)对像素作比较精细的分类。对于黑白图像,用包括像素本身灰度在内的一组局部性质(例如该像素邻域灰级的均值)在多维空间中进行分类。对于一些复杂图像,这种方法比单独的灰度阈值法效果更好。

图像处理中的标记分水岭分割算法

图像处理中的标记分水岭分割算法 如果图像中的目标物体是连接在一起的,则分割起来会更困难,分水岭分割算法经常用于处理这类问题,通常会取得比较好的效果。分水岭分割算法把图像看成一幅“地形图”,其中亮度比较强的区域像素值较大,而比较暗的区域像素值较小,通过寻找“汇水盆地”和“分水岭界限”,对图像进行分割。 直接应用分水岭分割算法的效果往往并不好,如果在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果。有很多图像处理工具箱函数可以用到,如fspecial、imfilter、watershed、lable2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh、和imimposemin函数等。 下面进行一个例子,步骤如下。 1、读取图像并求其边界,代码如下。 rgb = imread('');%读取原图像 I = rgb2gray(rgb);%转化为灰度图像 figure; subplot(121)%显示灰度图像 imshow(I) text(732,501,'Image courtesy of Corel',... 'FontSize',7,'HorizontalAlignment','right') 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('Gradient magnitude (gradmag)') 在这一步骤中,首先读取一套真彩色图像,然后把真色图像转化为灰度图像,结果如图所示:

图像分割技术的原理及方法

浅析图像分割的原理及方法 一.研究背景及意义 研究背景: 随着人工智能的发展,机器人技术不断地应用到各个领域。信息技术的加入是智能机器人出现的必要前提。信息技术泛指包括通信技术、电子技术、信号处理技术等相关信息化技术的一大类技术。它的应用使得人们今天的生活发生了巨大变化。从手机到高清电视等家用电器设备出现使我们的生活越来越丰富多彩。在一些军用及民用领域近几年出现了一些诸如:图像制导、无人飞机、无人巡逻车、人脸识别、指纹识别、语音识别、车辆牌照识别、汉字识别、医学图像识别等高新技术。实现它们的核心就是图像处理、机器视觉、模式识别、智能控制、及机器人学等相关知识。其中图像处理具有重要地位。而图像分割技术是图像分析环节的关键技术。 研究图像分割技术的意义: 人类感知外部世界的两大途径是听觉和视觉,尤其是视觉,同时视觉信息是人类从自然界中获得信息的主要来源,约占人类获得外部世界信息量的80%以上。图像以视觉为基础通过观测系统直接获得客观世界的状态,它直接或间接地作用于人眼,反映的信息与人眼获得的信息一致,这决定了它和客观外界都是人类最主要的信息来源,图像处理也因此成为了人们研究的热点之一。人眼获得的信息是连续的图像,在实际应用中,为便于计算机等对图像进行处理,人们对连续图像进行采样和量化等处理,得到了计算机能够识别的数字图像。数字图像具有信息量大、精度高、内容丰富、可进行复杂的非线性处理等优点,成为计算机视觉和图像处理的重要研究对象。在一幅图像中,人们往往只对其中的某些区域感兴趣,称之为前景,这些区域内的某些空间信息特性(如灰度、颜色、轮廓、纹理等)通常与周围背景之间存在差别。图像分割就是根据这些差异把图像分成若干个特定的、具有独特性质的区域并提取感兴趣目标的技术和过程。在数字图像处理中,图像分割作为早期处理是一个非常重要的步骤。为便于研究图像分割,使其在实

标记分水岭分割算法

标记分水岭分割算法 Separating touching objects in an image is one of the more difficult image processing operations. The watershed transform is often applied to this problem. The watershed transform finds "catchment basins"(集水盆) and "watershed ridge lines"(山脊线) in an image by treating it as a surface where light pixels are high and dark pixels are low. 如果图像中的目标物体是连接在一起的,则分割起来会更困难,分水岭分割算法经常用于处理这类问题,通常会取得比较好的效果。分水岭分割算法把图像看成一幅“地形图”,其中亮度比较强的区域像素值较大,而比较暗的区域像素值较小,通过寻找“汇水盆地”和“分水岭界限”,对图像进行分割。 Segmentation using the watershed transform works better if you can identify, or "mark," foreground objects and background locations. Marker‐controlled watershed segmentation follows this basic procedure: 直接应用分水岭分割算法的效果往往并不好,如果在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果。基于标记控制的分水岭分割方法有以下基本步骤: 1. Compute a segmentation function. This is an image whose dark regions are the objects you are trying to segment. 1.计算分割函数。图像中较暗的区域是要分割的对象。 2. Compute foreground markers. These are connected blobs of pixels within each of the objects. 2.计算前景标志。这些是每个对象内部连接的斑点像素。 3. Compute background markers. These are pixels that are not part of any object. 3.计算背景标志。这些是不属于任何对象的像素。 4. Modify the segmentation function so that it only has minima at the foreground and background marker locations.

相关文档
最新文档