2016-08-19 120 views
-1

該代碼用於MATLAB中的視頻處理,我在第一個循環中遇到問題。我不知道是什麼問題,但MATLAB給的錯誤:MATLAB - 視頻處理

分配有更多的非單RHS尺寸大於非單標

錯誤fi(34行)

data(:,:,f) = I;

這裏是我的代碼:

clc; 
close all; 
clear all; 

It1c = imread('\\icnas1.cc.ic.ac.uk\fi15\Desktop\frames\Frames_V11\051.png'); 
It600c = imread('\\icnas1.cc.ic.ac.uk\fi15\Desktop\frames\Frames_V11\009.png'); 

resf = 0.27e-6; 
fr_r = 12000; %frame rate = 12000 fps 

figure(); 
imagesc(It1c); 

figure(); 
imagesc(It600c); 

listing = dir('\\icnas1.cc.ic.ac.uk\fi15\Desktop\frames\Frames_V11\*.png'); 
N = 51; 
data = zeros(624,1024,N); 

for f = 1:N, 
    f 

    I = imread(['Frames_V11\',fullfile(listing(f).name)]); 
    data(:,:,f) = I;  
end 

figure; %see frames 
for i = 1:N, 
    imagesc(data(:,:,i)); 
    colorbar; 
    pause(0.1); 
end 

figure; %see frames 
for i = 1:N, 
    imagesc(data(:,:,i)-data(:,:,1)); 
    colorbar; 
    pause(0.1); 
end 

for i = 1:N, 
    i 
    data2(:,:,i) = data(:,:,i)-data(i); 
end 

figure; %see frames 
for i = 1:N, 
    imagesc(data2(:,:,i)); 
    colorbar; 
    pause(0.1); 
end 

figure; 
imagesc(squeeze(mean(data2(230:270,:,:),1))); 

figure; 
plot(squeeze(mean(mean(data5(210:235,395:425,:),1),2))); 

回答

0

您的圖像數據可能是RGB,因此它有以下維度[nRows, nCols, nChannels]其中nChannels很可能是3.錯誤是因爲您試圖將此3D矩陣分配給data中的2D切片。

因此,您需要連接沿第四個維度而不是第三個維度的所有圖像。

data = zeros(624, 1024, 3, N); 

for f = 1:N 
    data(:,:,:,f) = imread(['Frames_V11\',fullfile(listing(f).name)]); 
end