当前位置首页 > 教育资讯

示例说明:如何使用盲反卷积对图像进行模糊处理

更新时间:2023-05-13 文章作者:佚名 信息来源:网络整理 阅读次数:

此示例说明如何使用盲反频域模糊图像。 当不知道有关失真(模糊和噪声)的信息时,使用盲逆频域算法可能是有效的。 该算法可以同时恢复图像和点扩散函数(PSF)。 每次迭代都使用加速的 Decay-Lucy 算法。 其他光学系统(如单反)的特性可以作为输入参数,帮助提高图像复原的质量。 PSF 约束可以通过用户指定的函数传入。dib物理好资源网(原物理ok网)

第一步:读图dib物理好资源网(原物理ok网)

将灰度图像读入工作区。 函数可以处理任何维度的字段。dib物理好资源网(原物理ok网)

I = imread('cameraman.tif');
figure;imshow(I);title('Original Image');
text(size(I,2),size(I,1)+15, ...
    'Image courtesy of Massachusetts Institute of Technology', ...
    'FontSize',7,'HorizontalAlignment','right');
dib物理好资源网(原物理ok网)

第 2 步:模拟模糊dib物理好资源网(原物理ok网)

模拟可能模糊的真实图像(例如,由于 DSLR 运动或缺乏焦点)。 此示例通过将高斯混合器与频域中的真实图像相结合来模拟模糊(使用 )。 之后,高斯混合器表示点扩散函数 PSF。dib物理好资源网(原物理ok网)

PSF = fspecial('gaussian',7,10);
Blurred = imfilter(I,PSF,'symmetric','conv');
imshow(Blurred)
title('Blurred Image')
dib物理好资源网(原物理ok网)

第 3 步:使用各种尺寸的 PSF 恢复模糊图像dib物理好资源网(原物理ok网)

为了说明了解真实 PSF 大小的重要性,此示例执行了三个恢复。 每个 PSF 重建都以一个统一字段(链表)开始。dib物理好资源网(原物理ok网)

第一次恢复 J1 和 P1,使用较小的字段作为 PSF 的初始猜测。 字段的每个维度规范都比真实 PSF 少 4 个像素。dib物理好资源网(原物理ok网)

UNDERPSF = ones(size(PSF)-4);
[J1,P1] = deconvblind(Blurred,UNDERPSF);
imshow(J1)
title('Deblurring with Undersized PSF')
dib物理好资源网(原物理ok网)

第二次恢复 J2 和 P2,对原始 PSF 使用由 1 组成的字段摩擦力的图像分析,其每个位维度的规格比实际 PSF 长 4 个像素。dib物理好资源网(原物理ok网)

OVERPSF = padarray(UNDERPSF,[4 4],'replicate','both');
[J2,P2] = deconvblind(Blurred,OVERPSF);
imshow(J2)
title('Deblurring with Oversized PSF')
dib物理好资源网(原物理ok网)

第三个恢复 J3 和 P3,使用由 1 组成的字段来形成与实际 PSF 大小完全相同的初始 PSF。dib物理好资源网(原物理ok网)

INITPSF = padarray(UNDERPSF,[2 2],'replicate','both');
[J3,P3] = deconvblind(Blurred,INITPSF);
imshow(J3)
title('Deblurring with INITPSF')
dib物理好资源网(原物理ok网)

第 4 步:剖析恢复的 PSFdib物理好资源网(原物理ok网)

所有三个减少也形成 PSF。 右图显示了对构造的 PSF 的剖析如何帮助猜测初始 PSF 的正确大小。 在真正的 PSF(高斯混合器)中,最大值位于中心(红色)并在边界处减小(蓝色)。dib物理好资源网(原物理ok网)

figure;
subplot(2,2,1)
imshow(PSF,[],'InitialMagnification','fit')
title('True PSF')
subplot(222)
imshow(P1,[],'InitialMagnification','fit')
title('Reconstructed Undersized PSF')
subplot(2,2,3)
imshow(P2,[],'InitialMagnification','fit')
title('Reconstructed Oversized PSF')
subplot(2,2,4)
imshow(P3,[],'InitialMagnification','fit')
title('Reconstructed true PSF')
dib物理好资源网(原物理ok网)

在第一次恢复中重组的 PSFP1 似乎不符合约束规范。 边界处的信号差异很大。 与模糊图像相比,相应的图像 J1 没有显示出任何改进的清晰度。dib物理好资源网(原物理ok网)

在第二个补丁中重建的 PSFP2 具有非常平滑的边缘。 这意味着恢复可以处理较小格式的 PSF。 相应的图像 J2 显示出一些去模糊,但被振铃严重损坏。dib物理好资源网(原物理ok网)

最后,在第三个补丁中重构的 PSFP3 位于 P1 和 P2 之间。 阵列 P3 非常类似于真实的 PSF。 对应图像J3明显提升; 并且它一直被振铃效应破坏。dib物理好资源网(原物理ok网)

第五步:提高修复效果dib物理好资源网(原物理ok网)

恢复图像J3中的振铃出现在图像中硬度对比鲜明的区域和图像边界处。 此示例说明如何通过指定加权函数来增加振铃。 该算法在恢复图像和 PSF 时根据数组对每个像素进行加权。 在我们的例子中摩擦力的图像分析,我们首先使用边缘函数来寻找“清晰”的像素。 通过反复试验,我们确定理想的阈值水平为 0.08。dib物理好资源网(原物理ok网)

WEIGHT = edge(Blurred,'sobel',.08);
dib物理好资源网(原物理ok网)

为了扩大面积,我们使用并传入一个结构元素se。dib物理好资源网(原物理ok网)

se = strel('disk',2);
WEIGHT = 1-double(imdilate(WEIGHT,se));
dib物理好资源网(原物理ok网)

靠近边界的像素也被参数化为 0。dib物理好资源网(原物理ok网)

WEIGHT([1:3 end-(0:2)],:) = 0;
WEIGHT(:,[1:3 end-(0:2)]) = 0;
figure
imshow(WEIGHT)
title('Weight Array')
dib物理好资源网(原物理ok网)

通过使用链表调用函数并减少迭代次数 (30) 来恢复图像。 几乎所有的振铃效应都被抑制了。dib物理好资源网(原物理ok网)

[J,P] = deconvblind(Blurred,INITPSF,30,[],WEIGHT);
imshow(J)
title('Deblurred Image')
dib物理好资源网(原物理ok网)

第 6 步:对 PSF 恢复使用附加约束dib物理好资源网(原物理ok网)

此示例说明如何在 PSF 上指定其他约束。 下面的函数 FUN 返回更改后的 PSF 字段,用于下一次迭代。dib物理好资源网(原物理ok网)

在这种情况下,FUN 删除 PSF 的每个维度中的 P1 和 P2 个素数,然后用零填充以确保数组保持其原始大小。 这个操作并没有改变PSF中心的值,有效的减少了PSF的大小2*P1和2*P2像素。dib物理好资源网(原物理ok网)

P1 = 2;
P2 = 2;
FUN = @(PSF) padarray(PSF(P1+1:end-P1,P2+1:end-P2),[P1 P2]);
dib物理好资源网(原物理ok网)

传入匿名函数 FUN。 有关为函数提供附加参数的信息,请参阅文档中函数 FUN 的“参数化函数”部分。dib物理好资源网(原物理ok网)

在此示例中,初始 PSF 的大小比实际 PSF 大 4 个像素。 在 FUN 上设置 P1=2 和 P2=2 作为参数,使有价值的空间与真正的 PSF 大小相同。 因此,生成的 JF 和 PF 类似于反频域结果(步骤 4 中的 J 和 P),具有正确的 PSF 大小并且没有 FUN 调用。dib物理好资源网(原物理ok网)

[JF,PF] = deconvblind(Blurred,OVERPSF,30,[],WEIGHT,FUN);
imshow(JF)
title('Deblurred Image')
dib物理好资源网(原物理ok网)

如果我们使用过大的初始 PSF,但缺少约束函数 FUN,则得到的图像将类似于步骤 3 中得到的不令人满意的结果 J2。dib物理好资源网(原物理ok网)

请注意,可以省略 FUN 之前的任何未指定参数,例如本例中不必要的占位符 ([])。dib物理好资源网(原物理ok网)

注:本文根据官网内容有所改动。dib物理好资源网(原物理ok网)

以下免费视频教程的特点是无PPT,无水,直接编程环境下的实战课程:dib物理好资源网(原物理ok网)

欢迎您进一步了解以下系列文章:dib物理好资源网(原物理ok网)

发表评论

统计代码放这里