gpt4 book ai didi

python - 简单图像反卷积问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:11 24 4
gpt4 key购买 nike

我正在研究一些非常简单的图像反卷积以证明概念。

目标是将图像与内核(我使用的是 5*5 高斯矩阵)进行卷积,然后在傅立叶域中对其进行反卷积。

通过对图像矩阵和滤波器内核进行 FFT,元素相乘他们在一起,并采用结果的 iFFT,我能够获得相同的结果作为滑动核卷积。要撤消此卷积,我应该能够进行元素划分图像的 FFT 和滤波器的 FFT。

但是,当我尝试实现它时,我最终得到了一个非常奇怪的纹理。我知道我的方法是正确的,但我似乎无法在我的代码中找到错误,这让我抓狂。

# blur image
imblur = filters.convolve(im1, blurfilter)

# compute fft of kernel with padding
padfilfft = np.fft.fft2(blurfilter, s=im1.shape[:2], axes=(0,1))

# take fft of image
imfft = np.fft.fft2(imblur)

# element division
deconvolveimfft = np.divide(imfft, padfilfft)
deconvolveim = np.abs(np.fft.ifft2(deconvolveimfft))

这是使用 plt.imshow() 的输出:

typical, problematic output

这是原图。我正在使用 misc.imread 进行扁平化阅读: cheering

就其值(value)而言,blurfilter 定义如下:blurfilter = (1./273.) * np.array([[1,4,7,4,1],[4,16,26,16,4],[7,26,41,26 ,7],[4,16,26,16,4],[1,4,7,4,1]])

最佳答案

好的,所以我实际上能够弄明白。事实证明这是我内核的一个“问题”。我发现,一般来说,sigma > 1 的高斯核会产生这种奇怪的噪声问题。正如@MarkRansom 在评论中指出的那样,过滤器的 fft 变得非常接近于零。出于某种原因,当我们使用 σ<1 的内核时,噪声放大会少得多。

关于python - 简单图像反卷积问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com