文档

locallapfilt

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

语法

B = locallapfilt (A、σα)
B=局部LapFilt(A,σ,α,β)
B=本地LAPFILT(___、名称、值,…)

描述

例子

B=locallapfilt(一个σ阿尔法过滤灰度或RGB图像一个用边缘感知,快速的局部拉普拉斯滤波器。σ描述中边的振幅一个阿尔法控制细节的平滑。

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

例子

B=locallapfilt(___名称、值,...)使用名称-值对筛选图像以控制筛选器的高级方面。参数名称可以缩写。

例子

全部崩溃

导入RGB图像

一个= imread (“peppers.png”);

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

σ= 0.4;α= 0.5;

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

B=局部LapFilt(A,σ,α);

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

imshowpair (A, B,“蒙太奇”

局部拉普拉斯滤波是一种计算密集型算法。为了加快处理速度,locallapfilt通过将强度范围离散到由“核密度级'参数。此参数可用于平衡速度和质量。

导入RGB图像并显示。

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

使用σ价值处理的细节和一个阿尔法值来增强对比度,有效增强图像的局部对比度。

西格玛=0.2;阿尔法=0.3;

使用较少的示例可以提高执行速度,但可以产生可见的工件,特别是在对比度较低的区域。计时功能只使用20个强度级别。

t_speed=timeit(@()locallapfilt(A,sigma,alpha,“NumIntensityLevels”, 20))
t_speed = 0.2065

现在,处理图像并显示出来。

B_speed = locallapfilt(A, sigma, alpha,“NumIntensityLevels”,20);图形显示(B_速度)标题([“增强20级强度”num2str(t_速度)“sec”])

样本数量越多,结果越好,但处理时间越长。使用100个强度级别对函数计时。

t_quality = timeit(@() locallapfilt(A, sigma, alpha,))“NumIntensityLevels”, 100))
túu质量=0.8218

用100个强度等级处理图像并显示:

B_quality = localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100);图imshow (B_quality)标题([“100强度级别的增强”num2str(t_质量)“sec”])

尝试在你自己的图像上改变强度级别的数量。试着降低对比度阿尔法>1).您将看到,每幅图像的最佳强度级别数不同,并且随着时间的推移而变化阿尔法. 默认情况下,locallapfilt使用启发式来平衡速度和质量,但它无法预测每个图像的最佳值。

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

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

设置过滤器的参数以显著增加小于0.3的细节(从0到1的标准化范围)。

西格玛=0.3;阿尔法=0.1;

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

B_luminance = locallapfilt(A, sigma, alpha);B_separate = locallapfilt(A, sigma, alpha,“彩色模式”“分开”);

显示过滤后的图像。

图imshow (B_luminance)标题(“通过增强局部亮度对比度增强”

图imshow(B_单独)标题(“通过增强局部色彩对比来增强效果”

每个图像都应用了等量的对比度增强,但颜色在设置时更加饱和。ColorMode”到“单独的'.

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

一个= imread (“pout.tif”);A=单个(A);

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

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

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

西格玛=0.1;α=4.0;

应用边缘感知过滤器。

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

请注意,图像的峰值信噪比有所提高。

并排显示所有三个图像。观察细节被平滑,沿边缘的锐度变化没有改变。

图subplot(1,3,1), imshow(A), title(“原件”子图(1,3,2),imshow(A_noisy), title(“吵”)子地块(1,3,3),imshow(B),标题(“去噪”

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

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

这辆车很脏,上面有许多斑痕。我们试着擦掉尸体上的灰尘和痕迹。设置振幅的细节平滑,并设置大量的平滑应用。

西格玛=0.2;阿尔法=5.0;

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

numLevels = 16;

应用过滤器。

B=局部LapFilt(A,σ,α,“NumIntensityLevels”,numLevels);

展示“干净”的汽车。

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

输入参数

全部崩溃

要过滤的灰度或RGB图像,指定为真实的、非稀疏的、-借-n-借-n-by-3矩阵。

数据类型:|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,…,的家

例子:

全部崩溃

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

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

数据类型:烧焦

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

数据类型:|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|烧焦

输出参数

全部崩溃

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

参考文献

[1] Paris, Sylvain, Samuel W. Hasinoff, Jan Kautz。局部拉普拉斯滤波器:用拉普拉斯金字塔进行边缘感知图像处理,ACM-Trans。图表30.4 (2011): 68.

[2] 奥布里、马修等。快速局部拉普拉斯滤波器:理论与应用.计算机图形学学报(TOG) 33.5(2014): 167。

介绍了R2016b

这个话题有用吗?