主要内容

locallapfilt

图像的快速局部拉普拉斯滤波

描述

例子

B= locallapfilt (σα过滤灰度或RGB图像带有边缘感知的快速局部拉普拉斯滤波器。σ中边缘的振幅α控制平滑细节。

B= locallapfilt (σαβ使用以下方法过滤图像β控制的动态范围一个

例子

B= locallapfilt (___名称,值使用名称-值对控制过滤器的高级方面。

例子

全部折叠

导入RGB镜像

A = imread(“peppers.png”);

设置过滤器的参数,将细节增加到小于0.4。

Sigma = 0.4;Alpha = 0.5;

使用快速局部拉普拉斯滤波

B = locallapfilt(A, sigma, alpha);

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

imshowpair (A, B,“蒙太奇”

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

局部拉普拉斯滤波是一种计算量很大的算法。为了加快处理速度,locallapfilt通过将强度范围离散成由'定义的多个样本,近似算法。NumIntensityLevels的参数。这个参数可以用来平衡速度和质量。

导入RGB图像并显示它。

A = imread(“peppers.png”);图imshow(A)标题(原始图像的

图中包含一个axes对象。标题为Original Image的axes对象包含一个Image类型的对象。

使用一个σ值来处理详细信息和α值增加对比度,有效增强图像的局部对比度。

Sigma = 0.2;Alpha = 0.3;

使用更少的样本可以提高执行速度,但是会产生可见的工件,特别是在扁平对比的区域。仅使用20个强度级别对函数进行计时。

t_speed = timeit(@() localapfilt (A, sigma, alpha,“NumIntensityLevels”, 20))
T_speed = 0.1629

现在,处理并显示图像。

B_speed = locallapfilt(A, sigma, alpha,“NumIntensityLevels”, 20);图imshow(B_speed) title([增强了20个强度等级num2str (t_speed)“秒”])

图中包含一个axes对象。标题在0.16287秒内增强了20个强度级别的轴对象包含一个类型为图像的对象。

大量的样本会产生更好的结果,但需要花费更多的处理时间。使用100个强度级别对函数进行计时。

t_quality = timeit(@() localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100))
T_quality = 0.7390

处理100个强度级别的图像并显示它:

B_quality = localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100);图imshow(B_quality) title([“增强100级强度”num2str (t_quality)“秒”])

图中包含一个axes对象。在0.73901秒内具有100个强度级别标题的axis对象包含一个类型为image的对象。

试着在你自己的图像上改变强度等级的数量。试着把对比压平(用α> 1).你会看到,每个图像的最佳强度级别的数量是不同的,随着α.默认情况下,locallapfilt使用启发式来平衡速度和质量,但它不能预测每个图像的最佳值。

导入彩色图像,缩小其大小,并显示它。

A = imread(“car2.jpg”);A = imresize(A, 0.25);图imshow(A)标题(原始图像的

图中包含一个axes对象。标题为Original Image的axes对象包含一个Image类型的对象。

将过滤器的参数设置为大幅增加小于0.3的细节(从0到1的规范化范围之外)。

Sigma = 0.3;Alpha = 0.1;

让我们比较两种不同的颜色过滤模式。通过过滤图像的强度和分别过滤每个颜色通道来处理图像:

B_luminance = locallapfilt(A, sigma, alpha);B_separate = locallapfilt(A, sigma, alpha,“ColorMode”“独立”);

显示过滤后的图像。

图imshow(B_luminance)“通过提高局部亮度对比度来增强”

图中包含一个axes对象。标题为“通过提升局部亮度对比度增强”的axis对象包含一个类型为图像的对象。

图imshow(B_separate) title(“通过增强局部颜色对比来增强效果”

图中包含一个axes对象。标题为增强局部颜色对比度的axes对象包含一个类型为image的对象。

每一张图片都使用了等量的对比度增强,但在设置时颜色会更饱和。ColorMode“到”单独的”。

导入图像。将图像转换为浮点数,这样我们可以更容易地添加人工噪声。

A = imread(“pout.tif”);A = im2single(A);

添加均值为零,方差为0.001的高斯噪声。

A;“高斯”, 0, 0.001);psnr_noise = psnr(a_noise, A);流('噪声图像的峰值信噪比为%0.4f\n', psnr_noisy);
噪声图像的峰值信噪比为30.0234

将细节的振幅设置为平滑,然后设置要应用的平滑量。

Sigma = 0.1;Alpha = 4.0;

应用边缘感知过滤器。

B = locallapfilt(a_noise, sigma, alpha);psnr_降噪= psnr(B, A);流(去噪后图像的峰值信噪比为%0.4f\n', psnr_denoised);
去噪后图像的峰值信噪比为32.2016

注意图像的PSNR的改进。

并排显示所有三个图像。观察细节是光滑的,沿边缘的尖锐强度变化是不变的。

图subplot(1,3,1), imshow(A), title(“原始”) subplot(1,3,2), imshow(a_noise), title(“吵”) subplot(1,3,3), imshow(B), title(“去噪”

图中包含3个轴对象。标题为Original的axis对象1包含一个类型为image的对象。标题为Noisy的Axes对象2包含一个类型为image的对象。标题为降噪的Axes对象3包含一个类型为image的对象。

导入图像,调整其大小并显示它

A = imread(“car1.jpg”);A = imresize(A, 0.25);图imshow(A)标题(原始图像的

图中包含一个axes对象。标题为Original Image的axes对象包含一个Image类型的对象。

这辆车又脏又脏,到处都是记号。我们试着擦掉尸体上的灰尘和标记。将细节的振幅设置为平滑,并设置大量的平滑应用。

Sigma = 0.2;Alpha = 5.0;

当平滑(α> 1),滤波器产生高质量的结果与少量的强度级别。设置少量的强度级别以更快地处理图像。

numLevels = 16;

涂抹滤镜。

B = locallapfilt(A, sigma, alpha,“NumIntensityLevels”, numLevels);

展示“干净”的汽车。

图imshow(B)标题(“在平滑细节之后”

图中包含一个axes对象。在平滑细节之后,带有标题的axis对象包含一个类型为image的对象。

输入参数

全部折叠

要过滤的图像,指定为二维灰度图像或二维真彩色图像。

数据类型:|int8|int16|uint8|uint16

边的振幅,指定为非负数。σ对于整数图像和定义在[0,1]范围内的单个图像,应该在[0,1]范围内。对于在不同范围内定义的单个图像[一个b],σ也应在[一个b]。

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

平滑细节,指定为正数。的典型值α都在[0.01,10]的范围内。

价值 描述
α不到1 增加输入图像的细节,有效增强图像的局部对比度,而不影响边缘或引入光晕。
α大于1 平滑输入图像中的细节,同时保持清晰的边缘
α等于1 输入图像的细节保持不变。

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

动态范围,指定为非负数。beta的典型值在[0,5]的范围内。β的动态范围一个

价值 描述
β不到1 减小图像中边缘的振幅,在不影响细节的情况下有效压缩动态范围。
β大于1 扩展图像的动态范围。
β等于1 图像的动态范围保持不变。这是默认值。

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

名称-值参数

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“ColorMode”、“独立的”

用于筛选RGB图像的方法,指定为以下值之一。该参数对灰度图像没有影响。

价值 描述
“亮度” locallapfilt在滤波前将输入的RGB图像转换为灰度,滤波后重新引入颜色,在不影响颜色的情况下改变输入图像的对比度。
“独立” locallapfilt独立过滤每个颜色通道。

数据类型:字符|字符串

输入图像动态范围内的强度样本数量,指定为“汽车”或者正整数。样本数量越多,结果越接近于精确的局部拉普拉斯滤波。数值越低,执行速度越快。典型值在这个范围内[100].如果设置为“汽车”locallapfilt根据过滤器的其他参数自动选择强度等级的数量以平衡质量和速度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

输出参数

全部折叠

过滤后的图像,作为与输入图像相同大小和数据类型的数字数组返回,一个

参考文献

[1]帕里斯,西尔万,塞缪尔·w·哈西诺夫,简·考茨。局部拉普拉斯滤波器:基于拉普拉斯金字塔的边缘感知图像处理, ACM Trans。图30.4(2011):68。

[2] Aubry, Mathieu等。快速局部拉普拉斯滤波器:理论与应用.ACM图形学报(TOG) 33.5(2014): 167。

在R2016b中引入