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