2015-04-01 102 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