2
私はビデオのいくつかのフレームに移動するようなビデオを制御するためにMATLAB GUIのスライダを設定しようとしています。 「obj」は、ユーザによって選択されたビデオファイルである。次のコードを使用して入力ビデオを取得し、GUIの軸に表示しました。MATLAB GUIでビデオを制御するスライダを設定する方法は?
global b
filename = get(handles.edit3, 'String');
if ~exist(filename, 'file')
warndlg('Text in edit box is not the name of a file');
return
end
try
obj = VideoReader(filename);
catch
warndlg('File named in edit box does not appear to be a usable movie file');
return
end
axes(handles.axes2)
handles.pushbutton5=0;
guidata(hObject,handles);
while ~(handles.pushbutton5)
if hasFrame(obj)
vidFrame = readFrame(obj);
obj;
image(vidFrame, 'Parent', handles.axes2);
set(axes, 'Visible', 'off');
pause(1/obj.FrameRate)
end
handles = guidata(hObject);
end
clear obj
スライダは、ユーザがスライダを制御している間に "b"値を提供します。
どのようにビデオがスライダーで制御できるようにこの問題を解決するか知っていますか?
を、あなたの質問が明確に策定ていただけますか?ビデオのどのプロパティを値 'b'で制御したいですか?フレームインデックスですか?再生速度またはビデオの明るさは? –
スライダーを使ってビデオのいくつかの部分またはフレームにジャンプするか、移動する必要があります。 –
ビデオフレームの描画は 'slider2_Callback'関数で行わなければなりません。そこにあなたのビデオファイルにアクセスし、インデックス 'b'でフレームを読む必要があります。あなたのデータにアクセスするには、あなたの 'guidata'構造内に配置します。変数 'b'はグローバルである必要はありません。しかし、なぜあなたはmatlabの 'implay()'関数を使わないのですか? https://de.mathworks.com/help/images/ref/implay.html –