小编DJE*_*ric的帖子

去除图像

我试图在Python中对图像进行去模糊,但遇到了一些问题.这是我尝试过的,但请记住,我不是这个主题的专家.根据我的理解,如果你知道点扩散函数,你应该能够通过执行反卷积来简单地对图像进行去模糊.然而,这似乎不起作用,我不知道我是在做一些愚蠢的事情,还是我不理解事情.在Mark Newman的计算物理学书籍(使用Python)中,他在问题7.9中触及了这个主题.在这个问题中,他提供了一个他使用高斯点扩散函数(psf)故意模糊的图像,问题的目的是使用高斯对图像进行去模糊.这是通过将模糊图像的2D FFT除以psf的2D FFT然后进行逆变换来实现的.这工作得相当好.

为了解决这个问题,我想对使用故意失焦的相机拍摄的真实图像进行去模糊.所以我设置了一个相机并拍了两组照片.第一组照片是焦点.第一个是在一个完全黑暗的房间里的一个非常小的LED灯,第二个是一张纸上有文字(使用闪光灯).然后,在不改变任何距离或任何东西的情况下,我改变了相机上的焦点设置,使文本非常失焦.然后,我使用闪光灯拍摄了文本照片,然后拍摄了第二张LED照片(没有闪光灯).这是模糊的图像.

模糊的文字

模糊点光源

现在,根据我的理解,模糊点光源的图像应该是点扩散函数,因此我应该能够用它来去模糊我的图像.问题在于,当我这样做时,我得到一个看起来像噪音的图像.经过一些研究后,使用反卷积技术时噪声似乎是个大问题.然而,鉴于我已经测量了我认为确切的点扩散函数,我很惊讶噪声在这里是一个问题.

我尝试过的一件事就是用1或者epsilon替换psf变换中的小值(小于epsilon),我尝试使用epsilon的大范围值.这产生的图像不仅仅是噪点,而且也不是图像的模糊版本; 它看起来像原始(非模糊)图像的奇怪,模糊版本.这是我的程序中的图像(您可以忽略sigma的值,该程序中未使用该值).

在此输入图像描述

我相信我正在处理一个噪音问题,但我不知道为什么,我不知道该怎么办.任何建议都会非常感激(请记住,我不是这方面的专家).

请注意,我故意不发布代码,因为我认为这在某种程度上是无关紧要的.但如果有人认为有用,我会很高兴这样做.我不认为这是一个编程问题,因为我使用了相同的技术,并且当我具有已知的点扩散函数时(例如当我通过FFT的out-of划分原始对焦图像的FFT时)它工作正常 - 聚焦图像然后逆变换).我只是不明白为什么我似乎无法使用我的实验测量点扩散函数.

python image-processing deconvolution

8
推荐指数
1
解决办法
1921
查看次数

标签 统计

deconvolution ×1

image-processing ×1

python ×1