MATLAB图像处理 Lucy-Richardson算法deconvlucy函数的使用

deconvlucy:使用露西理查森方法去模糊复原图像。

J =deconvlucy(I,PSF) 使用Lucy-Richardson算法去卷积图像 I,返回去模糊的图像J。假定图像是通过用点扩散函数PSF卷积真实图像并可能通过添加噪声而创建的。

I 可以是N维数组。

为了改善恢复,可以传入附加参数(如果中间参数未知,则使用[]作为占位符):

J = deconvlucy(I,PSF,NUMIT)
J = deconvlucy(I,PSF,NUMIT,DAMPAR)
J = deconvlucy(I,PSF,NUMIT,DAMPAR,WEIGHT)
J = deconvlucy(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT)

J = deconvlucy(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT,SUBSMPL), where

NUMIT(optional)是迭代次数(默认值为10)。

DAMPAR (optional) 是一个数组,用于指定图像I(根据泊松噪声的标准偏差)的结果图像的阈值偏差,低于此值会发生阻尼。 对于在DAMPAR值内偏离其原始值的像素,迭代被抑制。 这可以抑制这些像素中的噪音,并在其他地方保留必要的图像细节。 默认值为0(无阻尼)。

WEIGHT(optional) 分配给每个像素以反映相机的拍摄质量。 将一个坏像素分配给零权值,从而排除该像素。 您可以根据平场校正的数量来调整自己的体重,而不是给予好像素的权重。 默认值是与输入图像I大小相同的单位数组。

READOUT(可选)是对应于附加噪声(例如,背景,前景噪声)和读出相机噪声方差的阵列(或值)。 READOUT必须以图像为单位。默认值是0。

SUBSMPL(可选)表示子采样,当PSF在SUBSMPL时间比图像更精细的网格上给出时使用。默认值是1。

注意,输出图像J可能会出现由算法中使用的离散傅里叶变换引入的振铃。 为了减少铃声的使用 I=EDGETAPER(I,PSF)在调用deconvlucy之前。

还请注意,去卷积可让您从早期去卷积运行的结果开始恢复去卷积。 要启动此语法,输入图像I必须作为单元格数组{I}传入。 然后输出J成为一个单元阵列,并可以作为输入数组传递给下一个deconvlucy调用。 输入单元数组可以包含一个数字数组(在初始调用时)或四个数值数组(当它是前一次去卷积运算的输出时)。 输出J包含四个元素,其中J {1} = I,J {2}是上一次迭代产生的图像,J {3}是前一次迭代前的图像,J {4}是 通过迭代算法使用内部的数组

    Class Support
    -------------
    I and PSF can be uint8, uint16, int16, double, or single. DAMPAR and
    READOUT must have the same class as the input image. Other inputs have to
    be double. The output image (or the first array of the output cell) has
    the same class as the input image.
 
    Example
    -------

       I = checkerboard(8);
       PSF = fspecial('gaussian',7,10);
       V = .0001;
       BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);
       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)');


MATLAB图像处理 Lucy-Richardson算法deconvlucy函数的使用_第1张图片



你可能感兴趣的:(MATLAB,deconvlucy)