主要内容

imseggeodesic

段图像分成两个或三个区域使用测地线基于距离的颜色分割

描述

例子

l= imseggeodesic (RGB,BW1,BW2)段的彩色图像RGB与标签,返回一个分段二进制图像lBW1BW2是二进制图像指定初始种子区域的位置,叫什么涂鸦,因为这两个地区(前景和背景)。

imseggeodesic使用在指定的涂鸦BW1BW2作为计算的代表性样本的统计各自的区域,然后使用的分割。指定的涂鸦BW1BW2(区域逻辑真)不应重叠。底层算法使用统计估计的区域被分割的涂鸦。更大的像素的数量被涂鸦,更准确的估计区域统计数据,通常会导致更精确的分割。因此,它是一个很好的实践提供尽可能多的涂鸦。通常情况下,至少提供一个几百像素作为每个地区的涂鸦。

例子

l= imseggeodesic (RGB,BW1,BW2,BW3)段的彩色图像RGB返回一个分割图像与三个部分(三重的分割)地区指定的标签标签矩阵lBW1,BW2,BW3是二进制图像指定初始种子区域的位置或三个区域的涂鸦。指定的涂鸦BW1,BW2,BW3(区域逻辑真正的)不应重叠。

例子

l= imseggeodesic (___“AdaptiveChanneWeighting”,特遣部队)还指定了是否imseggeodesic使用自适应通道分割权重函数执行。当你指定特遣部队作为真正的,imseggeodesic使用自适应通道使用加权。默认情况下,价值的特遣部队imseggeodesic同样重量的所有通道。

例子

(l,P)= imseggeodesic (___)还返回每个像素的概率属于每个标签的矩阵P

例子

全部折叠

读取和显示一个图像。

RGB = imread (“yellowlily.jpg”);imshow (RGB)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

我们的目标是花的花瓣。指定初始种子区域作为一个矩形ROI使用drawrectangle函数。显示红色的ROI。位置的名称-值对参数指定左上角坐标,宽度和高度的ROI第4单元向量(xmin ymin、宽度、高度)。如果你想画矩形交互,那么省略了“位置”名称-值对的论点。

roiObject = drawrectangle (gca),“位置”(350 700 375 120),“颜色”,“r”);

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象,images.roi.rectangle。

指定的初始种子区域背景作为一个矩形的ROI。用蓝色显示的ROI。

roiBackground = drawrectangle (gca),“位置”(90 1230 910 190),“颜色”,“b”);

图包含一个坐标轴对象。坐标轴对象包含3类型的对象形象,images.roi.rectangle。

创建一个为每个ROI ROI的面具真正的和其他像素

maskObject = createMask (roiObject);maskBackground = createMask (roiBackground);

段的图像。

[L P] = imseggeodesic (RGB, maskObject maskBackground);

显示分段标签。

imshow (label2rgb (L)标题(“分段标签”)

图包含一个坐标轴对象。坐标轴对象与标题分段标签包含一个类型的对象的形象。

显示原始图像分割的标签。

L) imshow (labeloverlay (RGB)标题(“原始图像标签覆盖”)

图包含一个坐标轴对象。坐标轴对象与标题标签覆盖原始图像包含一个类型的对象的形象。

读取和显示一个图像。

RGB = imread (“yellowlily.jpg”);imshow (RGB)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

第一个区域由黄色的花瓣。指定初始种子区域作为一个矩形ROI使用drawrectangle函数。用黄色画出ROI。位置的名称-值对参数指定左上角坐标,宽度和高度的ROI第4单元向量(xmin ymin、宽度、高度)。如果你想画矩形交互,那么省略了“位置”名称-值对的论点。

r1 = drawrectangle (gca),“位置”(350 700 425 120),“颜色”,“y”);

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象,images.roi.rectangle。

第二个区域包括绿叶。种子区域指定为一个矩形ROI并画红色的ROI。

r2 = drawrectangle (gca),“位置”(800 1124 120 230),“颜色”,“r”);

图包含一个坐标轴对象。坐标轴对象包含3类型的对象形象,images.roi.rectangle。

第三个区域是背景,图片里的污垢。种子区域指定为一个矩形ROI并画出蓝色的ROI。

r3 = drawrectangle (gca),“位置”(1010 290 180 240),“颜色”,“b”);

图包含一个坐标轴对象。坐标轴对象包含4类型的对象形象,images.roi.rectangle。

创建一个为每个ROI ROI的面具真正的和其他像素

mask1 = createMask (r1);mask2 = createMask (r2);mask3 = createMask (r3);

段的图像。

(L P) = imseggeodesic (RGB, mask1、mask2 mask3,“AdaptiveChannelWeighting”,真正的);

显示原始图像分割的标签。

L) imshow (labeloverlay (RGB)标题(与三个区域的分割图像)

图包含一个坐标轴对象。坐标轴对象与标题分割图像三个区域包含一个类型的对象的形象。

图片的右下角并被错误地归类为区域2(叶子)。添加另一个背景ROI。

r4 = drawrectangle (gca),“位置”(20 1320 480 200),“颜色”,“b”);

图包含一个坐标轴对象。坐标轴对象与标题分割图像与三个区域包含2图像类型的对象,images.roi.rectangle。

mask4 = createMask (r4);maskBackground = mask3 + mask4;

然后部分图像显示原始图像分割标签。

(L P) = imseggeodesic (RGB, mask1、mask2 maskBackground,“AdaptiveChannelWeighting”,真正的);L) imshow (labeloverlay (RGB)标题(“精炼与三个区域分割图像”)

图包含一个坐标轴对象。坐标轴对象与标题精炼分割图像三个区域包含一个类型的对象的形象。

显示每个像素的概率是属于每个标签。

蒙太奇(P,“大小”3[1])标题(每个像素的概率属于每个标签”)

图包含一个坐标轴对象。坐标轴对象与标题概率,每个像素属于每个标签包含一个类型的对象的形象。

输入参数

全部折叠

图像分割,指定为RGB图像。imseggeodesic将输入转换为RGB图像之前到YCbCr颜色空间进行分割。

数据类型:|uint8|uint16

潦草的形象第一区域指定为一个逻辑矩阵。BW1必须有相同数量的行和列的输入图像吗RGB。首先创建交互式地涂鸦,画一个ROI使用等功能drawcircle,drawfreehand,drawpolygon,或drawrectangle。然后,创建一个面具的ROIcreateMask

数据类型:逻辑

潦草的图像的第二区域,指定为一个逻辑矩阵。BW2必须有相同数量的行和列的输入图像吗RGB。首先创建交互式地涂鸦,画一个ROI使用等功能drawcircle,drawfreehand,drawpolygon,或drawrectangle。然后,创建一个面具的ROIcreateMask

数据类型:逻辑

潦草的形象第三区域,指定为一个逻辑矩阵。BW3必须有相同数量的行和列的输入图像吗RGB。首先创建交互式地涂鸦,画一个ROI使用等功能drawcircle,drawfreehand,drawpolygon,或drawrectangle。然后,创建一个面具的ROIcreateMask

数据类型:逻辑

使用自适应通道权重,指定为一个数字或逻辑0()或1(真正的)。当真正的,imseggeodesic重量成正比的渠道的歧视性的有用的信息分割(基于提供的草稿作为输入)。当(默认),imseggeodesic同样重量的所有通道。

数据类型:逻辑

输出参数

全部折叠

返回标签矩阵,矩阵的非负整数。像素标记0背景和像素标记吗1确定一个分割区域。像素标记2在三重的分割识别另一个分割区域。

数据类型:

概率一个像素属于标签区域,指定为一个——- - - - - -N2为二元分割或矩阵——- - - - - -N3矩阵三倍的分割。N是输入图像的行和列的数量。P (i, j, k)指定位置像素的概率(i, j)属于标签k

数据类型:

提示

  • 两个(或三个)地区的涂鸦不应该互相重叠。每一个潦草的矩阵(BW1,BW2,BW3)应该非空的,应该有至少一个像素(尽管越多越好)标记为逻辑真正的在每一个涂鸦。

算法

imseggeodesic使用测地线(类似于基于距离的颜色分割算法[1])。

引用

[1]a . Protiere萨皮罗g .通过自适应加权距离交互式图像分割,IEEE图像处理。问题4卷16日,2007年。

版本历史

介绍了R2015a