matlab中deconvlucy函数的帮助文档
文章目录语法描述示例输入参数输出参数提示deconvlucyDeblur image using Lucy-Richardson method使用Lucy-Richardson方法对图像进行去模糊语法J = deconvlucy(I,psf)J = deconvlucy(I,psf,iter)J = deconvlucy(I,psf,iter,dampar)J = deconvlucy(I,psf
deconvlucy
Deblur image using Lucy-Richardson method
使用Lucy-Richardson方法对图像进行去模糊
语法
J = deconvlucy(I,psf)
J = deconvlucy(I,psf,iter)
J = deconvlucy(I,psf,iter,dampar)
J = deconvlucy(I,psf,iter,dampar,weight)
J = deconvlucy(I,psf,iter,dampar,weight,readout)
J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample)
描述
J = deconvlucy(I,psf)恢复图像I,这一图像是因点扩展函数(point-spread function,即PSF),psf以及可能由加性噪声卷积而退化的。该算法是基于最大化泊松统计,所得图像J是原始图像I实例的可能性。
为了改善修复,deconvlucy支持几个可选参数,如下所述。如果您未指定中间参数,请使用[]作为占位符。
J = deconvlucy(I,psf,iter)
指定迭代次数iter。J = deconvlucy(I,psf,iter,dampar)
通过抑制像素的迭代来控制噪声放大,该像素与由阻尼阈值阻尼器指定的噪声相比偏差较小。默认情况下,不发生阻尼。J = deconvlucy(I,psf,iter,dampar,weight)
指定恢复时要考虑输入图像中的哪些像素。权重数组中元素的值确定要考虑输入图像中相应位置的像素量。例如,要从像素中排除像素,请在权重数组中为其分配值0。可以根据平场校正量来调整分配给每个像素的权重值。J = deconvlucy(I,psf,iter,dampar,weight,readout)
指定附加噪声(例如背景噪声,前景噪声)和读出的摄像机噪声,读出的方差。J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample)
当PSF在比图像精细的子采样倍数的网格上给出时,使用子采样。
示例
使用几种取消隐藏的可选语法删除模糊
- 创建样本图像并将其模糊。
I = checkerboard(8);
PSF = fspecial('gaussian',7,10);
V = .0001;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);
- 创建一个权重数组,并使用几个可选参数调用deconvlucy。
WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
J1 = deconvlucy(BlurredNoisy,PSF);
J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V));
J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);
- 显示结果
subplot(221);imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222);imshow(J1);
title('deconvlucy(A,PSF)');
subplot(223);imshow(J2);
title('deconvlucy(A,PSF,NI,DP)');
subplot(224);imshow(J3);
title('deconvlucy(A,PSF,NI,DP,WT)');
输入参数
- I:模糊图像(数值数组|单元阵列)
模糊图像,指定为任意尺寸的数字数组。您也可以将图像指定为单元数组以启用中断的迭代。
数据类型:single | double | int16 | uint8 | uint16 - PSF:点扩展函数(数值数组)
PSF,指定为数字数组。您还可以将psf指定为单元数组以启用中断的迭代。
数据类型:single | double | int16 | uint8 | uint16 - iter:迭代次数(默认是10|正数)
迭代次数,指定为正整数。
数据类型:double - dampar:阻尼阈值(默认是0|数值标量)
阻尼阈值,指定为数字标量。对于迭代之间的偏差小于阈值的像素发生阻尼。阻尼器具有与I相同的数据类型。 - weight:每个像素的权重(数值数组)
每个像素的权重值,指定为数值数组,范围为[0,1]。 weight具有与输入图像I相同的大小。默认情况下,weight中的所有元素的值均为1,因此在还原中所有像素均被视为相等。
数据类型:double - readout:噪声(默认是0|数值数组|数值标量)
噪声,指定为数字标量或数字数组。读出值对应于附加噪声(例如来自前景和背景的噪声)和读出的照相机噪声的方差。读数具有与I相同的数据类型。 - subsampling:下采样(默认是1|正数标量)
下采样,特指正数标量
数据类型:double
输出参数
J:去模糊的图像(数值数组|1×4单元阵列)
去模糊的图像,以数字数组或1×4单元格数组形式返回。 J(或J {1},当J是一个单元格数组时)与I具有相同的数据类型。有关将J作为单元数组返回以进行中断迭代的更多信息,请参见下面提示部分。
提示
-
您可以使用deconvlucy执行从前一个反卷积停止处开始的反卷积。要使用此功能,请将输入图像I和PSF psf作为像元数组{I}和{psf}传递。当您这样做时,deconvlucy函数将输出图像J作为单元格数组返回,然后可以将其作为输入数组传递给下一个deconvblind调用。输出单元数组J包含四个元素:
J{1}包含原始图像I。
J{2}包含最后一次迭代的结果。
J{3}包含倒数第二次迭代的结果。
J{4}是由迭代算法生成的数组。 -
输出图像J可能表现出由算法中使用的离散傅立叶变换引入的振铃。要减少振铃,请在调用deconvlucy之前使用
I = edgetaper(I,psf)
-
deconvlucy将PSF转换为两倍而不进行归一化。
更多推荐
所有评论(0)