【发布时间】:2014-04-26 00:38:36
【问题描述】:
我是一名新的 OpenCV 用户,我正在为大学做一个项目。该程序获取输入图像,对其进行综合模糊处理,然后再对其进行去模糊处理。当合成模糊的图像去卷积时,会产生边界伪影,因为……嗯,到目前为止,我还没有实现边界条件。以下是一些示例:您可以看到输入的未模糊图像、合成模糊的图像以及我得到的最终输出:
http://answers.opencv.org/upfiles/13953138566866107.png
根据我正在编写代码的论文,边界条件必须通过通过点扩散函数宽度填充输入图像并创建一个掩码来指示哪些像素来自捕获区域而不是来自捕获区域边界区域。
如果我的问题可能很愚蠢,我深表歉意,但是:
1.如何计算点扩散函数宽度?到目前为止,我使用了一个简单的 3x3 框模糊内核,内部为 1/9s。宽度是 3 吗?
2.如果点扩散函数宽度为3,我必须通过在四个边上添加三个像素来填充输入图像还是必须通过“覆盖”来填充输入图像模糊过程导致它周围的“暗框”?据我了解,那些“暗框”区域包含原始未模糊图像的平均值,因此无法在这些区域进行反卷积重建起始图像,这只会产生和传播伪影。
我想说的是:我是否必须在输入图像的所有四个边上添加额外的像素,或者我是否必须“覆盖”“暗框”,它的宽度是相同的点之一传播函数,据我了解?
http://answers.opencv.org/upfiles/13953135698274495.png
3.我必须填充未模糊的输入图像还是合成模糊的图像?
提前感谢您的帮助!
【问题讨论】:
-
您能否提供您用于编写代码的文章的链接?我已经使用文章实现了卷积/反卷积:nist.gov/lispix/imlab/FFT/deblur.html 有一个很好的教程。也可以看看:fmwconcepts.com/imagemagick/fourier_transforms/fourier.html
-
感谢有趣的链接,我今天试试。如果我能得到好的结果,我会在这里分享。顺便说一句,您共享的图像将我放到了我的保管箱中,并且不允许加载任何内容。
-
感谢您的帮助!请让我更新。我更新了帖子的链接,现在您应该可以看到图片了。
标签: opencv padding artifacts boundary