主要内容

rangefilt

图像局部距离

描述

例子

J= rangefilt (返回的数组J,其中每个输出像素包含在输入图像中的相应像素周围的3×3邻域的范围值(最大值 - 最小值)

例子

J= rangefilt (nhood返回局部图像范围使用指定的邻域,nhood

例子

全部折叠

将图像读入工作区。

我= imread (“liftingbody.png”);

过滤的图像。的rangefilt函数返回一个数组,其中每个输出像素包含输入图像中对应像素周围的3 × 3邻域的范围值(最大值-最小值)。

J = rangefilt(我);

并排显示原始图像和过滤后的图像。

imshowpair(我,j,“蒙太奇”

图中包含一个轴对象。axis对象包含一个image类型的对象。

这个例子展示了如何使用纹理过滤函数检测图像中的纹理区域

将图像读入工作区并显示它。在该图中,背景是平滑的 - 灰度级值的变化很小。在前景中,硬币的表面轮廓表现出更多质地。在此图像中,前景像素具有更多的变化性和更高的范围值。

我= imread (“eight.tif”);imshow(我)

图中包含一个轴对象。axis对象包含一个image类型的对象。

过滤图像rangefilt功能并显示结果。距离滤波使硬币的边缘和轮廓清晰可见。

K = rangefilt(我);图imshow(k)

图中包含一个轴对象。axis对象包含一个image类型的对象。

将图像读入工作区,并显示它。

我= imread ('circuit.tif');imshow(我);

图中包含一个轴对象。axis对象包含一个image类型的对象。

定义一个社区。在本例中,当输入像素的左边和右边的像素值之间存在较大差异时,邻域返回一个较大的值。过滤不考虑上面的像素,而吹灭输入像素。因此,这个社区强调垂直边缘。

Nhood = [1 1 1];

使用这个邻域执行距离过滤操作。为了比较,也可以使用缺省的3 × 3邻域执行范围过滤。比较结果。

J = rangefilt(我nhood);K = rangefilt(我);图imshowpair (J, K,“蒙太奇”);标题(使用指定邻域(左)和默认邻域(右)的范围过滤);

图中包含一个轴对象。使用指定邻域(左)和默认邻域(右)进行标题范围过滤的axis对象包含一个类型为image的对象。

如预期的那样,使用指定邻域的结果强调了垂直边。相比之下,默认滤波器对边缘方向不敏感。

输入参数

全部折叠

要过滤的图像,指定为任意维度的数字数组。

数据类型:|uint8|uint16|uint32|逻辑

邻域,指定为包含0和1的逻辑或数字数组。的大小nhood必须在每个维度中奇数。rangefilt由确定邻域的中心元素地板(大小(NHOOD) + 1) / 2)

要指定其他形状(如磁盘)的邻域,请使用strel功能创建所需形状的结构化元素对象。然后,从结构化元素对象中提取邻域社区财产。

数据类型:||int8|INT16|int32|int64|uint8|uint16|uint32|uint64|逻辑

输出参数

全部折叠

过滤的图像,返回为数字数组,与输入图像相同的大小和类,有符号整数数据类型除外。有符号数据类型的输出类是相应的无符号整数数据类型。例如,如果类int8,然后是班级Juint8

算法

rangefilt使用形态函数imdilateimerode确定指定邻域中的最大值和最小值。最后,rangefilt使用这些形态功能的填充行为。

在R2006A之前介绍