bwdist
二值图像的距离变换
语法
D = bwdist(BW)
[D,IDX] = bwdist(BW)
[D]; [D];方法
)
[gpuarrayD, gpuarrayIDX]= bwdist(gpuarrayBW)
描述
D = bwdist(BW)
计算二值图像的欧氏距离变换BW
.中的每个像素BW
的最近的非零像素之间的距离,距离变换赋值一个数字BW
.bwdist
默认使用欧氏距离度量。BW
可以有任何维度。D
是一样的尺寸吗BW
.
[D,IDX] = bwdist(BW)
还以索引数组的形式计算最接近像素的映射,IDX
.(最接近像素映射也被称为特征映射、特征变换或最近邻变换。)IDX
尺寸和BW
而且D
.的每个元素IDX
的最近的非零像素的线性索引BW
.
[D]; [D];
计算距离变换,其中方法
)方法
指定备用距离度量。方法
可以采用下列值中的任何一个。
[gpuarrayD, gpuarrayIDX]= bwdist(gpuarrayBW)
计算二值图像的欧氏距离变换gpuarrayBW
,在图形处理器上执行该操作。图像必须是2- d的,并且小于2个32-1元素。另外,你只能计算欧氏距离度规。此语法需要并行计算工具箱™。
类的支持金宝app
BW
可以是数值的或逻辑的,而且它必须是非稀疏的。D
是否一个矩阵的大小与BW
.的班级IDX
取决于输入图像中元素的数量,并由下表确定。
类 | 范围 |
---|---|
“uint32” |
元素个数(BW) < = 232−1 |
“uint64” |
元素个数(BW) > = 232 |
gpuarrayBW
可以是二维图形阵列类型uint8
,uint16
,uint32
,int8
,int16
,int32
,单
,双
或逻辑
.gpuarrayD
是一个与?大小相同的gpuArraygpuarrayBW
和底层类单
.gpuarrayIDX
是一个与?大小相同的gpuArraygpuarrayBW
和底层类uint32
.
例子
提示
bwdist
使用快速算法来计算真欧氏距离变换,特别是在二维情况下。其他方法主要是出于教学的原因。然而,对于多维输入图像,特别是那些有许多非零元素的图像,可选距离变换有时明显更快。这个函数
bwdist
在6.4版(R2009b)更改。以前版本的图像处理工具箱使用不同的算法来计算欧氏距离变换和相关的标签矩阵。如果您需要由前一个实现产生的相同结果,请使用该函数bwdist_old
.
算法
对于欧氏距离变换,bwdist
中描述的快速算法
[1] Maurer, Calvin, Rensheng Qi,和Vijay Raghavan,“一种计算任意维度二值图像精确欧氏距离变换的线性时间算法,”模式分析与机器智能汇刊2003年2月,第25卷第2期,第265-270页。
对于城市街区、棋盘和拟欧氏距离变换,bwdist
使用中描述的双通道顺序扫描算法
[2] Rosenfeld, Azriel和John Pfaltz,“数字图像处理中的顺序操作”,计算机协会杂志1966年,第13卷第4期,第471-494页。
通过在扫描中使用不同的权重集来实现不同的距离测量,如中所述
[3] David Paglieroni,“距离变换:属性和机器视觉应用”,计算机视觉,图形学和图像处理:图形模型和图像处理1992年1月,第54卷第1期,第57-58页。