locallapfilt
图像的快速局部拉普拉斯滤波
描述
例子
利用局部拉普拉斯滤波提高RGB图像的局部对比度
导入RGB镜像
一个= imread (“peppers.png”);
设置过滤器的参数,将细节增加到小于0.4。
σ= 0.4;α= 0.5;
使用快速局部拉普拉斯滤波
B = locallapfilt(A, sigma, alpha);
并排显示原始和过滤图像。
imshowpair (A, B,“蒙太奇”)
增加局部对比度,平衡速度和质量
局部拉普拉斯滤波是一种计算量很大的算法。为了加快处理速度,locallapfilt
通过将强度范围离散成由'定义的多个样本,近似算法。NumIntensityLevels
的参数。这个参数可以用来平衡速度和质量。
导入RGB图像并显示它。
一个= imread (“peppers.png”);图imshow (A)标题(原始图像的)
使用一个σ
值来处理详细信息和α
值增加对比度,有效增强图像的局部对比度。
σ= 0.2;α= 0.3;
使用更少的样本可以提高执行速度,但是会产生可见的工件,特别是在扁平对比的区域。仅使用20个强度级别对函数进行计时。
t_speed = timeit(@() localapfilt (A, sigma, alpha,“NumIntensityLevels”, 20))
t_speed = 0.0583
现在,处理并显示图像。
B_speed = locallapfilt(A, sigma, alpha,“NumIntensityLevels”, 20);图imshow (B_speed)标题([增强了20个强度等级num2str (t_speed)“秒”])
大量的样本会产生更好的结果,但需要花费更多的处理时间。使用100个强度级别对函数进行计时。
t_quality = timeit(@() localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100))
t_quality = 0.1817
处理100个强度级别的图像并显示它:
B_quality = localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100);图imshow (B_quality)标题([“增强100级强度”num2str (t_quality)“秒”])
试着在你自己的图像上改变强度等级的数量。试着把对比压平(用α
> 1).你会看到,每个图像的最佳强度级别的数量是不同的,随着α
.默认情况下,locallapfilt
使用启发式来平衡速度和质量,但它不能预测每个图像的最佳值。
使用ColorMode增强局部颜色对比度
导入彩色图像,缩小其大小,并显示它。
一个= 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,“ColorMode”,“独立”);
显示过滤后的图像。
图imshow (B_luminance)标题(“通过提高局部亮度对比度来增强”)
图imshow (B_separate)标题(“通过增强局部颜色对比来增强效果”)
每一张图片都使用了等量的对比度增强,但在设置时颜色会更饱和。ColorMode
”到“单独的
”。
执行边缘感知降噪
导入一个图像。将图像转换为浮点数,这样我们可以更容易地添加人工噪声。
一个= imread (“pout.tif”);= im2single ();
添加均值为零,方差为0.001的高斯噪声。
A_noisy = imnoise (,“高斯”, 0, 0.001);psnr_noise = psnr(a_noise, A);流('噪声图像的峰值信噪比为%0.4f\n', psnr_noisy);
噪声图像的峰值信噪比为30.0234
将细节的振幅设置为平滑,然后设置要应用的平滑量。
σ= 0.1;α= 4.0;
应用边缘感知过滤器。
B = locallapfilt(a_noise, sigma, alpha);psnr_降噪= psnr(B, A);流(去噪后图像的峰值信噪比为%0.4f\n', psnr_denoised);
去噪后图像的峰值信噪比为32.3362
注意图像的PSNR的改进。
并排显示所有三个图像。观察细节是光滑的,沿边缘的尖锐强度变化是不变的。
图subplot(1,3,1), imshow(A), title(“原始”) subplot(1,3,2), imshow(a_noise), title(“吵”) subplot(1,3,3), imshow(B), title(“去噪”)
平滑图像细节,不影响边缘锐度
导入图像,调整其大小并显示它
一个= imread (“car1.jpg”);A = imresize(A, 0.25);图imshow (A)标题(原始图像的)
这辆车又脏又脏,到处都是记号。我们试着擦掉尸体上的灰尘和标记。将细节的振幅设置为平滑,并设置大量的平滑应用。
σ= 0.2;α= 5.0;
当平滑(α
> 1),滤波器产生高质量的结果与少量的强度级别。设置少量的强度级别以更快地处理图像。
numLevels = 16;
应用过滤器。
B = locallapfilt(A, sigma, alpha,“NumIntensityLevels”, numLevels);
展示“干净”的汽车。
图imshow (B)标题(“平滑后的细节”)
输入参数
我
- - - - - -图像过滤
二维灰度图像|二维真彩图像
要过滤的图像,指定为二维灰度图像或二维真彩色图像。
数据类型:单
|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
β
- - - - - -动态范围
1
(默认)|非负的数量
动态范围,指定为非负数。beta的典型值在[0,5]的范围内。β
的动态范围一个
.
价值 | 描述 |
---|---|
β 不到1 |
减小图像中边缘的振幅,在不影响细节的情况下有效压缩动态范围。 |
β 大于1 |
扩展图像的动态范围。 |
β 等于1 |
图像的动态范围保持不变。这是默认值。 |
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“ColorMode”、“独立的”
ColorMode
- - - - - -用于过滤RGB图像的方法
“亮度”
(默认)|“独立”
用于筛选RGB图像的方法,指定为以下值之一。这个参数对灰度图像没有影响。
价值 | 描述 |
---|---|
“亮度” |
locallapfilt 在滤波前将输入的RGB图像转换为灰度,滤波后重新引入颜色,在不影响颜色的情况下改变输入图像的对比度。 |
“独立” |
locallapfilt 独立过滤每个颜色通道。 |
数据类型:字符
|字符串
NumIntensityLevels
- - - - - -强度样本数量
“汽车”
(默认)|正整数
输入图像动态范围内的强度样本数量,指定为“汽车”
或正整数。样本数量越多,结果越接近于精确的局部拉普拉斯滤波。数值越低,执行速度越快。典型值在这个范围内[100]
.如果设置为“汽车”
,locallapfilt
根据过滤器的其他参数自动选择强度等级的数量以平衡质量和速度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
输出参数
B
-过滤图片
数字数组
过滤后的图像,作为与输入图像相同大小和数据类型的数字数组返回,一个
.
参考文献
[1]帕里斯,西尔万,塞缪尔·w·哈西诺夫,简·考茨。局部拉普拉斯滤波器:基于拉普拉斯金字塔的边缘感知图像处理ACM反式。图30.4(2011):68。
[2] Aubry, Mathieu等。快速局部拉普拉斯滤波器:理论与应用.ACM图形学报(TOG) 33.5(2014): 167。
版本历史
介绍了R2016bMATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。