ビデオの現在のフレームと背景フレームのh、s、v値の差を計算し、その値を表示してランダムなチェックをしたいさらなるアクションのための差分値。私は360x640マトリックスとして最終的な出力を得ました。最後のフレームの差分値を表示すると思います。誰も私がH、SおよびVの全ての差分値を表示するように助けることができる。matlabを使用してビデオ内の全フレームのフレーム差分出力を表示する方法
videoObject = VideoReader(movieFullFileName)
% Determine how many frames there are.
% numberOfFrames = videoObject.NumberOfFrames;
vidHeight = videoObject.Height;
vidWidth = videoObject.Width;
for frame = 1 : numberOfFrames
% Extract the frame from the movie structure.
thisFrame = read(videoObject, frame);
% Now let's do the differencing
alpha = 0.5;
if frame == 1
Background = thisFrame;
else
% Change background slightly at each frame
% Background(t+1)=(1-alpha)*I+alpha*Background
Background = (1-alpha)* thisFrame + alpha * Background;
end
% Display the changing/adapting background.
subplot(2, 2, 3);
imshow(Background);
title('Adaptive Background', 'FontSize', fontSize);
% Do color conversion from rgb to hsv
x=rgb2hsv(thisFrame);
y=rgb2hsv(Background);
% Split the hsv component to h,s,v value
Hx = x(:,:,1);
Sx = x(:,:,2);
Vx = x(:,:,3);
Hy = y(:,:,1);
Sy = y(:,:,2);
Vy = y(:,:,3);
dh=(abs(double(Hx) - double(Hy)));
ds1=(abs(double(Sx) - double(Sy)));
dv1=(abs(double(Vx) - double(Vy)));
disp(dh);
disp(ds1);
disp(dv1);
end
end
わかりません。 h、s、vの3つの画像を表示したいですか?あなたの希望する出力は何ですか? –
@AndreaPerissinotto私の望む出力は、ビデオのすべてのフレームの現在のフレームとバックグラウンドフレームの 'h'、 's'、 'v'値の差を計算して表示することです。 – SHOBA
Weel、あなたはすでにdh =(abs(double(Hx) - double(Hy)))の差分を計算していると思います。 –