matlab之watershed分水岭分割算法

news/2024/6/17 9:11:09 标签: matlab, 函数, 应用, 算法



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函数等。

转载自:http://blog.sina.com.cn/s/blog_725866260100rz7x.html



http://www.niftyadmin.cn/n/1714238.html

相关文章

opencv之形态学重建

在形态学梯度图像的基础上,利用形态学的开闭重建运算对梯度图像进行重建,在保留重要区域伦敦的同时去除细节和噪声。 分水岭变换存在过分割现象,原因在于检测的局部极值过多,造成极值过多的原因在于图像中的非规则灰度扰动和噪声。…

南阳OJ语言入门锦集

 这里的题大多是我自己做的。我会用不同的知识点来解决一道题。并且有详细的注释,对新手有帮助。也希望你们在ACM的道路上越走越远。 1:/*ASCII码排序 时间限制:3000 ms | 内存限制:65535 KB …

opencv之cvCopy()和cvCloneImage()的区别

Opencv中cvCopy()和cvCloneImage()的区别: 1 cvCopy的原型是:void cvCopy( const CvArr* src, CvArr* dst, const CvArr* maskNULL ); 在使用这个函数之前,你必须用cvCreateImage(&a…

alpha blending算法

背景知识:经典图形理论认为,一个象素可以有三原色构成,即红色,绿色,蓝色,即RGB。对于24位深度的图形系统,RGB各占8个BIT。一个象素占24个BIT。Alpha通道:Alpha通道是用来处理透明色的…

nyoj915*+-字符串

 /*-字符串 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同。 Shiva一次可以把一个加号和它相邻的减号交换。 他想知道最少需要多少次操作才能…

python读写、创建文件、文件夹

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多…

opencv之split和merge分离通道和合并多通道的用法

转载自:http://blog.csdn.net/shanshangyouzhiyangm/article/details/53198522 为了更好的观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整。通过OpenCV的split和merge方法可以很方便的达到目的。 分离颜色通道 (…

HTML+CSS+JavaScript实现满屏爱心特效 520情人节表白源码HTML 七夕情人节表白源码HTML 生日祝福代码HTML 七夕情人节表白页面制作HTML 生日快乐源码HTML

❉ 七夕情人节 ❤htmlcssj❤实现满屏爱心特效(程序员表白) ❤程序员表白, 很多人和小编一样受到暴击,需要告白的同学加紧了,不要错过这个好时机。 ❤许多程序员小伙伴总是苦于找不到合适的告白方式。在这里,特地整理了一些程序员专属的告白…