我正在从视频(car1.mp4)中提取帧(5帧)。之后,显示行数(和列数)。 然后计算每一帧的行和列的像素值之和。最后,在列(或行)数与幅度之间绘制图形。下面是我的代码:
clear all
close all
clc
video=VideoReader('car1.mp4');
numFrames = video.NumberOfFrames;
for i = 1:1:5
frames = read(video,i);
imwrite(frames,['image' int2str(i), '.jpg'])
frames = imresize(frames,[100 150]);
sz = size(frames);
numRows = sz(1);
disp(numRows)
numCols = sz(2);
disp(numCols)
rm = numRows*255;
for j = 1:numRows
sumr(j)=0;
for k = 1:numCols
pixels1 = impixel(frames,k,j);
sumr(j)=sumr(j)+pixels1(1);
end
end
s1 = rm./sumr;
plot(s1)
xlabel({'Horizontal Projection','(no. of columns)'})
ylabel('Magnitude')
rc = numCols*255;
for u = 1:numCols
sumc(u)=0;
for v = 1:numRows
pixels2 = impixel(frames,v,u);
sumc(u)=sumc(u)+pixels2(1);
end
end
s2 = rc./sumc;
plot(s2)
xlabel({'Vertical Projection','(no. of rows)'})
ylabel('Magnitude')
end
主要问题是,从视频中提取了五帧,但仅显示一帧的输出(投影与幅度之间的关系图)。我正在使用for循环,以便显示每个帧的输出(投影与幅度之间的关系图),但未显示。还有另一个问题是为什么它只显示一个投影,即水平投影或垂直投影?
提前感谢:)