文档

rangefilt

图像局部范围

语法

J = rangefilt(I)
J = range (I,nhood)

描述

例子

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

例子

J= rangefilt (nhood执行输入图像的范围滤波你指定的社区在哪里nhoodnhood由0和1组成的多维数组,其中非零元素指定范围过滤操作的邻域。

例子

全部折叠

将图像读入工作区。

I = imread(“liftingbody.png”);

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

J = rangefilt(I);

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

imshowpair (I, J,“蒙太奇”

将图像读入工作区。

RGB = imread(“autumn.tif”);

将RGB图像转换为L*a*b*图像。

LAB = rgb2lab(RGB);

对LAB图像进行范围滤波。

rLAB = rangefilt(LAB);

显示图像。

imshow (RGB);

图,imshow (rLAB (:,: 1), []);

图,imshow (rLAB (:,: 2), []);

图,imshow (rLAB (:,:, 3), []);

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

I = imread(“circuit.tif”);imshow(我);

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

Nhood = [1 1 1];

使用此邻域执行范围过滤操作。为了进行比较,还可以使用默认的3 × 3邻域执行范围过滤。比较结果。

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

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

输入参数

全部折叠

要过滤的图像,指定为任何维度的实数、非稀疏数字数组。

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

邻域,指定为包含0和1的多维、逻辑或数字数组。NHOOD的尺寸在每个维度上都必须是奇数。

默认情况下,rangefilt利用社区真正的(3)rangefilt确定邻域的中心元素地板((尺寸(NHOOD) + 1)/2)

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

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

输出参数

全部折叠

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

算法

rangefilt使用形态函数imdilate而且imerode以确定指定邻域中的最大值和最小值。因此,rangefilt使用这些形态函数的填充行为。

R2006a之前介绍

这个话题有用吗?