【问题标题】:detect the position of an object in the image using matlab使用matlab检测图像中物体的位置
【发布时间】:2012-11-24 16:17:17
【问题描述】:

我正在尝试实现二维相关算法来检测图像中对象的位置,我不想使用任何内置函数估计二维相关。

这是我的代码:

I=imread('image.tif');      % image is a black image contains white letters.
h=imread('template.tif');   %template is a small image taken from the original image, it contains one white letter.
I=double(I);
h=double(h);
[nrows ncolumns]=size(I);
[nrows2 ncolumns2]=size(h);
C=zeros(nrows,ncolumns);

for u=1:(nrows-nrows2+1)
   for v=1:(ncolumns-ncolumns2+1)
       for x=1:nrows2
           for y=1:ncolumns2
               C(u,v)=C(u,v)+(h(x,y)*I(u+x-1,v+y-1));
           end
       end
  end
end

[maxC,ind] = max(C(:));
[m,n] = ind2sub(size(C),ind)   % the index represents the position of the letter.

output_image=(3.55/4).*C./100000;
imshow(uint8(output_image));

我认为它有效!但是速度很慢。

如何用更好的代码替换以下代码以加快算法速度?

   for x=1:nrows2
       for y=1:ncolumns2
           C(u,v)=C(u,v)+(h(x,y)*I(u+x-1,v+y-1));
       end
   end

我在想,每次我都有以下两个矩阵

h(1:nrows2,1:ncolumns2)I(u:u+nrows2-1,v:v+ncolumns2-1)

还有一个问题,有什么改进吗?

谢谢。

【问题讨论】:

  • 你说,一个对象。您可以尝试在同一图像中使用不同的对象,然后使用不同质量/类型的图像吗?
  • 你说,一个对象。您可以尝试使用同一图像中的不同对象然后使用不同质量/类型的图像吗?我现在不在机器前。但是下面的链接可以给你一些优化的想法。 link PS:手机发帖不是很好。我真的想删除第一条评论。
  • 图像是一个简单的黑色图像包含白色字母,模板是一个黑色小图像包含一个白色字母,在输出图像中我找到了模板中字母的最大值(我试过多个模板)

标签: image matlab optimization image-processing computer-vision


【解决方案1】:

只要有可能,尽量使用矩阵运算。所以试试类似的东西:

rowInds = (1:nrows2)-1;
colInds = (1:ncolumns2)-1;

temp = h.*I(u+rowInds,v+colInds);
C(u,v) = sum(temp(:));

代替:

for x=1:nrows2
    for y=1:ncolumns2
        C(u,v)=C(u,v)+(h(x,y)*I(u+x-1,v+y-1));
    end
end

【讨论】:

  • 我的回答假设您只想使用矩阵运算和 for 循环。如果您可以使用 FFT 或卷积函数,请使用它们,正如其他人在下面所说的那样。
【解决方案2】:

是的,有很多改进。你根本不需要 for 循环。由于不想使用matlab的xcorr2函数,可以使用conv2。查看我给here的答案。

【讨论】:

    【解决方案3】:

    cross-correlation theorem 之后确定傅里叶域中的互相关如何?这应该保证显着的速度增加。

    【讨论】:

    • 谢谢我已经在频域应用了(更快),但我想在空间域中实现。
    猜你喜欢
    • 2021-04-10
    • 2016-08-24
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2016-05-28
    相关资源
    最近更新 更多