如何解决在 MATLAB 中对使用运动模糊捕获的图像进行反卷积
我用手机摄像头捕捉到了这张带有运动模糊的图像,想对其进行去模糊处理。
我将模糊 PSF 建模为一条长度为 L 且角度为 phi 的线,并计算了这些值。我将 PSF 构建为一个零矩阵和一条位于中心的线,其长度和角度是先前计算的。该行的值是 1/L,因此矩阵中值的总和为 1。我将此矩阵分配给变量“h”。
现在我想用这个 256x256 PSF 去卷积模糊的 256x256 图像。我研究并找到了确定去模糊图像傅里叶变换近似值的表达式,但他们使用人工模糊图像,为此他们知道噪声信号的方差,并且可以使用 MATLAB 中的维纳滤波器函数。一篇论文提出了这个表达:
这给了我如下结果:
imgdouble = double(imgrec)/255;
H = fft2(h); % PSF
Hc = conj(H);
I = fft2(imgdouble);
Fhat = I.*(Hc./(abs(H).^2+1/256));
figure,imshow(ifft2(Fhat))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。