1 简介
运动目标的检测是数字图像处理和模式识别以及计算机视觉领域研究的主要内容之一,也是计算机视觉研究的一个重要领域.对基于背景差分法的视频目标检测的算法进行了研究.以Matlab为主体研究工具,对视频中的运动目标进行检测.对背景差分法的原理和算法进行了研究,并对其进行了详细的讨论和分析.利用中值滤波背景模型来提取背景,并对目标的阴影进行检测与抑制.实验结果表明,采用该算法对运动目标进行检测具有良好的准确性和稳定性.
2 部分代码
function varargout = object_tracking(varargin)
% _____________________________________________________
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @object_tracking_OpeningFcn, ...
'gui_OutputFcn', @object_tracking_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before object_tracking is made visible.
function object_tracking_OpeningFcn(hObject, eventdata, handles, varargin)
movegui(hObject,'center')
imaqreset
% ID of video source
handles.fuente=2;
%Disable "Start" and "Stop" buttons
set(handles.inicio,'Enable','off');
set(handles.parar,'Enable','off');
set(hObject,'UserData',0)
set(handles.axes1,'XTickLabel',[],'YTickLabel',[])
% Choose default command line output for object_tracking
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = object_tracking_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- FUNCTION TO GET BACKGROUND
function cap_fondo_Callback(hObject, eventdata, handles)
% Reset imaq device
imaqreset
set(hObject,'UserData',0) %User data 0 (1 stop capture)
% Enable "Start" and "Stop" buttons
set(handles.inicio,'Enable','off');
set(handles.parar,'Enable','off');
% Disable current button
set(hObject,'Enable','off');
% Get default source
sel_fuente=handles.fuente;
switch sel_fuente
% _________________________________________________________________
case 1 %WEB CAM
% Open GUI to select the camera to use
sel_camera
%
uiwait
% Bring the camera features
% id= Camera ID
% es_web_ext= indicator if laptop or external camera
global id es_web_ext
% Determine format depending on the type of camera to use
if es_web_ext==0
formato='YUY2_176x144';
else
formato='RGB24_320x240';
end
try
% Create video object
vid = videoinput('winvideo',id,formato);
% Update handles
guidata(hObject, handles);
catch
function parar_Callback(hObject, eventdata, handles)
set(hObject,'userdata',1)
guidata(hObject, handles)
% --- SELECTION OF VIDEO SOURCE
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
if hObject==handles.video_op %VIDEO AVI
handles.fuente=2;
else
handles.fuente=1; % WEBCAM
end
guidata(hObject,handles)
function umbral_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function umbral_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
3 仿真结果
4 参考文献
[1]汪国强, 盖琪琳, 于怀勇,等. 基于背景差分法的视频目标检测算法研究[J]. 黑龙江大学工程学报, 2014, 5(4):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。