图像的快速局部拉普拉斯滤波
导入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(@() locallapfilt(A, sigma, alpha,“NumIntensityLevels”, 20))
t_speed = 0.1473
现在,处理图像并显示出来。
B_speed = locallapfilt(A, sigma, alpha,“NumIntensityLevels”, 20);图imshow (B_speed)标题([“增强20级强度”num2str (t_speed)“秒”])
大量的样本产生更好的外观结果,但代价是更多的处理时间。使用100个强度等级计时功能。
t_quality = timeit(@() locallapfilt(A, sigma, alpha,))“NumIntensityLevels”, 100))
t_quality = 0.6715
用100个强度等级处理图像并显示:
B_quality = localapfilt (A, sigma, alpha,“NumIntensityLevels”, 100);图imshow (B_quality)标题([“在100个强度级别的增强”num2str (t_quality)“秒”])
尝试在你自己的图像上改变强度级别的数量。试着降低对比度α
> 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,“ColorMode”,“独立”);
显示过滤后的图像。
图imshow (B_luminance)标题(“通过提高局部亮度对比度来增强效果”)
图imshow (B_separate)标题(“通过增强局部色彩对比来增强效果”)
每个图像都应用了等量的对比度增强,但颜色在设置时更加饱和。ColorMode
”到“单独的
'.
导入一个图像。将图像转换为浮点数,这样我们可以更容易地添加人工噪声。
一个= imread (“pout.tif”);= im2single ();
加入高斯噪声,均值为零,方差为0.001。
A_noisy = imnoise (,“高斯”, 0, 0.001);psnr_noisy = psnr(A_noisy, A);流(“噪声图像的峰值信噪比为%0.4f\n”, psnr_noisy);
噪声图像的峰值信噪比为30.0234
将细节的振幅设置为平滑,然后设置平滑的数量。
σ= 0.1;α= 4.0;
应用边缘感知滤波器。
B = locallapfilt(A_noisy, sigma, alpha);psnr_denoised = psnr(B, A);流(去噪后图像的峰值信噪比为%0.4f\n', psnr_denoised);
去噪后图像的峰值信噪比为32.2016
注意图像的PSNR的改进。
并排显示所有三个图像。观察细节被平滑,沿边缘的锐度变化没有改变。
图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 = locallapfilt(A, sigma,“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,…,的家
.
“ColorMode”、“独立的”
ColorMode
- - - - - -用于过滤RGB图像的方法“亮度”
(默认)|“独立”
用于过滤RGB图像的方法,指定为以下值之一。该参数对灰度图像没有影响。
价值 | 描述 |
---|---|
“亮度” |
locallapfilt 滤波前将输入的RGB图像转换为灰度,滤波后重新引入颜色,在不影响颜色的情况下改变了输入图像的对比度。 |
“独立” |
locallapfilt 独立过滤每个颜色通道。 |
数据类型:字符
|字符串
NumIntensityLevels
- - - - - -强度样本数“汽车”
(默认)|正整数输入图像动态范围内的强度采样数,指定为“汽车”
或正整数。样本数量越多,结果越接近于精确的局部拉普拉斯滤波。数值越低,执行速度越快。典型值在范围内[100]
.如果设置为“汽车”
,locallapfilt
根据过滤器的其他参数自动选择强度等级的数量,以平衡质量和速度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
B
-过滤图片过滤后的图像,作为与输入图像大小和数据类型相同的数字数组返回,一个
.
[1] Paris, Sylvain, Samuel W. Hasinoff, Jan Kautz。局部拉普拉斯滤波器:用拉普拉斯金字塔进行边缘感知图像处理ACM反式。图30.4(2011):68。
Aubry, Mathieu等。快速局部拉普拉斯滤波器:理论与应用.计算机图形学学报(TOG) 33.5(2014): 167。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。