使用图像上的滑动窗口进行相似性比

时间:2015-11-19 10:28:04

标签: matlab image-processing

原始图片是

enter image description here

我想将此图像中存在的矩形对象与矩形蒙版进行比较?如何选择矩形蒙版?如何比较矩形图像和蒙版的相似性。我想用相似的方法检查相似性 enter image description here 从论文中 基于分数傅里叶变换的图像融合方法。为此,我写了一个滑动窗口模板。如何实现这个等式:

I = imread('test1.png');
imageWidth = size(I, 2);
imageHeight = size(I, 1);

windowWidth = 32;
windowHeight = 32;

for j = 1:imageHeight - windowHeight + 1
    for i = 1:imageWidth - windowWidth + 1
        window = I(j:j + windowHeight - 1, i:i + windowWidth - 1, :);
        S(j,i)=sum(sum(abs(window).*abs(mask)))/(sum(sum(window.^2))+sum(sum(mask.^2)));
    end
end

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的相似性函数,那么已经提取了窗口

S(j, i)=sum(sum(abs(window).*abs(mask)))/(sum(sum(window.^2))+sum(sum(mask.^2)));

为了提高效率,最好使用nlfilter对图像执行滑动窗口操作。

首先,您需要创建一个函数来计算相似度。最简单的方法是将此作为表单的匿名函数:

similarity=@(M) 'Implent your similarity function here..';

当你屏蔽你的窗户时,面具不会改变你应该能够直接调用它而不需要它作为你的功能的变量。

然后调用nlfilter(img, [m n], similarity);,其中[m n]给出您要使用的窗口的大小。