【发布时间】:2012-04-01 11:58:03
【问题描述】:
我必须确定,在随机图片上使用了哪个过滤器 - 是否有一种常用的方法来检测正确的过滤器(高斯、prewitt、sobel、平均......)或者编写某种代码是否聪明'蛮力'-检测?
我试图用 Matlab 找到它,但我不知道如何更更有效地搜索。目前,这就像在干草堆中找到一根针。我也想过使用一些 bash-script 和 imagemagick,但这会消耗资源。
我认为这不是问题,但猜测过滤器并像这样尝试非常耗时
f = fspecial('gaussian', [3 3], 1);
res = imfilter(orginal, f);
corr2(res, pic);
【问题讨论】:
-
如果您有过滤后的图像和原始图像,那么确定过滤器系数非常简单,然后您就可以对过滤器内核进行分类。
-
是的,我两者都有,但是如何确定系数?用matlab?
-
您可以通过对两个图像进行 FFT、除法然后对结果进行逆 FFT 来反卷积。参见例如mathworks.com/matlabcentral/fileexchange/…
-
好吧,这听起来不错,但过滤器内核是一个矩阵,但我收到 3 个值(1.0094、1.0046、1.0140)(系数?) - 我预计 25 [5x5] 或至少 9 [ 3x3]。如何获得卷积核?
-
@PaulR:如果图像有光谱零点,那在数值上就不是很稳定。
标签: matlab image-processing filter imagemagick gaussian