一、简介
基于matlab的运动目标检测系统,在MATLAB中实现运动目标检测通常涉及对视频序列中的连续帧进行处理,以识别和提取出移动的目标。下面简要介绍几种常用的算法及其在MATLAB中的实现方法。
帧间差分法原理:基于连续视频帧之间的差异来检测运动物体。如果场景中没有运动目标,则连续帧之间的差异很小;而当有运动目标时,连续帧之间会有明显的差异。
混合高斯模型原理:利用统计方法建立背景模型,通过比较当前像素点与背景模型的匹配程度来检测运动目标。
ViBe算法原理:基于像素点邻域的背景建模方法,通过比较当前像素点与其邻域像素点的相似性来检测运动目标。
二、部分源码
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
videoName = get(handles.edit1, 'String');
videoSource = vision.VideoFileReader(videoName,...
'ImageColorSpace', 'RGB', 'VideoOutputDataType', 'uint8');
videoInfo = info(videoSource);
videoRate = videoInfo.VideoFrameRate;
waitTime = 1.0/videoRate;
frame_last = rgb2gray(step(videoSource));
count = 1
global exit_flag;
global pause_flag;
exit_flag = false;
pause_flag = false;
while ~isDone(videoSource) && ~exit_flag
if pause_flag
uiwait(handles.figure1);
end
frame = step(videoSource);
frame_now = rgb2gray(frame);
frame_now = medfilt2(frame_now);
frame_diff = abs(frame_now - frame_last);
fgMask = imbinarize(frame_diff);
fgMask = imopen(fgMask, strel('rectangle', [3, 3]));
fgMask = imfill(fgMask, 'holes');
frame_last = frame_now;
axes(handles.axes1);
imshow(frame);
axes(handles.axes2);
imshow(fgMask);
pause(waitTime - 0.02);
count = count + 1
end
release(videoSource);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global exit_flag;
exit_flag = true;
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global pause_flag;
pause_flag = true;
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信