2013-11-22 22 views
0

我有一個用於手勢識別的Matlab實時視頻處理問題。我曾嘗試使用Matlab將實時視頻轉換爲陣列

n = 20; % 'n' is the number of frames i want to capture 

%preallocating frame() 
for i=1:n 
    frame(:,:,:,i) = getsnapshot(vid); 
end 

但是當我嘗試使用下面的循環

for i=1:n 
    image=frame(:,:,:,i); 
    y=imresize(image,[50, 50]); 
    b=rgb2gray(y); 

    %%processing for features 
end 

陣列b訪問每個陣列始終包含值1。我的實施有什麼問題嗎?我是否總是必須將每個幀轉換爲圖像文件?

+0

如果Falimond的答案解決了您的問題,請接受答案。 – beerbajay

回答

1

問題是最有可能在片斷你沒有提供的唯一代碼:P

當你預分配框架陣列確保它是這樣的:有

frame = zeros(720,1280,3,N,'uint8'); 

只有調用零()沒有演員將分配它作爲一個雙打數組。看來使用'int8'也會產生不必要的結果。也許這在你的機器上是不同的。

+0

非常感謝您的回覆。它現在的作品:)我預先分配爲幀=零(720,1280,3,n);之前 –