MATLAB-视频处理

MATLAB-视频处理,matlab,video,Matlab,Video,代码是在MATLAB中进行视频处理的,我在第一个循环中遇到了一个问题。我不知道问题是什么,但MATLAB给出的错误是: 赋值的非单例rhs维度多于非单例下标 fi(第34行)中出现错误 数据(:,:,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

代码是在MATLAB中进行视频处理的,我在第一个循环中遇到了一个问题。我不知道问题是什么,但MATLAB给出的错误是:

赋值的非单例rhs维度多于非单例下标

fi
(第34行)中出现错误

数据(:,:,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)));

您的图像数据可能是RGB,因此具有以下维度
[nRows,nCols,nChannels]
其中
nChannels
可能是3。错误是因为您试图将此3D矩阵分配给
数据中的2D切片

因此,需要沿第四维而不是第三维连接所有图像

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

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