2016-08-19 145 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