2015-04-01 53 views
0

我需要从图像中提取一个窗口大小,让我们来看看,但窗口大小随帧的每个图像而变化。它可以更大或更小,问题是我必须将最后一帧添加到当前,并且只有相同大小的矩阵可以相加。从每帧图像中提取窗口

这是我试过的。我所采取的是我考虑了四种可能性,但我没有得到的结果并不令人满意。

你有什么建议吗?

[f1, f2]=size(hscf); 
[f11, f22]=size(Hstcf); 

      if(f1> f11 && f2>f22) 
    C=zeros(f1,f2); 
    for i=1:1:f11 
     for j=1:1:f22 
      C(i,j)=Hstcf(i,j); 
      end 
      end 
    Hstcf=C; 

      elseif(f1<f11 &&f2<f22) 
    C=zeros(f1,f2); 
    for i=1:1:f1 
     for j=1:1:f2 
      C(i,j)=Hstcf(i,j); 
     end 
end 
    Hstcf=C; 
elseif(f1>f11 && f2<f22) 
    C=zeros(f1,f2); 
    for i=1:1:f11 
     for j=1:1:f2 
      C(i,j)=Hstcf(i,j) 
end 
    end 
    Hstcf=C; 
elseif(f1<f11 && f2>f22) 
    C=zeros(f1,f2); 
    for i=1:1: f1 
     for j=1:1:f22 
      C(i,j)=Hstcf(i,j); 
     end 
    end 
    Hstcf=C; 
    elseif(f1<f11 && f2==f22) 
    C=zeros(f1,f2); 
    for i=1:1: f1 
     for j=1:1:f22 
      C(i,j)=Hstcf(i,j); 
     end 
    end 
    Hstcf=C; 
    elseif(f1>f11 && f2==f22) 
    C=zeros(f1,f2); 
    for i=1:1: f11 
     for j=1:1:f22 
      C(i,j)=Hstcf(i,j); 
     end 
    end 
    Hstcf=C; 
    elseif(f1==f11 && f2>f22) 
    C=zeros(f1,f2); 
    for i=1:1: f1 
     for j=1:1:f22 
      C(i,j)=Hstcf(i,j); 
     end 
    end 
    Hstcf=C; 
    elseif(f1==f11 && f2<f22) 
    C=zeros(f1,f2); 
    for i=1:1: f1 
     for j=1:1:f2 
      C(i,j)=Hstcf(i,j); 
     end 
    end 
    Hstcf=C; 

end 
+0

那么是什么使得大小的观察窗的变化? – rayryeng 2015-04-01 02:46:13

+0

在框架中移动目标 – likui 2015-04-01 10:36:48

回答

0

据我所知,您正试图从大图像的左上角开始将小图像复制到大图像。如果是这样,错误是由于以下原因。您先将小图像正确复制到名为C的空矩阵中。但迭代后,您直接将修改后的C复制到您的原始大图像(Hstcf=C)。请检查下面的代码片段。这段代码的

hscf = imread('cameraman.tif'); 
subplot(1,3,1); imshow(hscf); 
title(strcat(num2str(size(hscf,1)), 'x', num2str(size(hscf,2)))); 
Hstcf = imresize(imread('coins.png'), .5); 
subplot(1,3,2); imshow(Hstcf); 
title(strcat(num2str(size(Hstcf,1)), 'x', num2str(size(Hstcf,2)))); 

[f1, f2]=size(hscf); 
[f11, f22]=size(Hstcf); 

if (f1>f11 && f2>f22) 
    for i=1:f11 
     for j=1:f22 
      hscf(i,j)=Hstcf(i,j); 
     end 
    end 
end 

subplot(1,3,3); imshow(hscf); 
title(strcat(num2str(size(hscf,1)), 'x', num2str(size(hscf,2)))); 

输出如下,

enter image description here

+0

感谢您的帮助,但这不是什么即时通讯尝试待办事项,可以说我想把较小的图像放入较大图像的中心,我有中心点,想要将较小的图像添加到更大的图像的中心 – likui 2015-04-01 10:34:01