资源说明:菜鸟提问基于MATLAB的防盗报警系统的有关问题-sounddetection.m
话不多说,之前有人做出视频防盗系统,详见此贴。
原来的一个版本:视频监控,有东西经过监控区域就报警:
贴子如下:
https://www.ilovematlab.cn/thread-133835-1-1.html
后来又有人加上了声音报警系统。声音过大就会报警。
详见此贴
声音监控,有东西发出声音就进行报警
https://www.ilovematlab.cn/thread-133881-1-1.html
。。
然后就是我们有个大作业,我想到的是将两者结合在一起,在视频监控的同时,如果声音过大就进行报警,然后拍照(要是能把照片发到邮箱就好了)。
以下是我的修改,但是一直报错。希望有人能帮忙修改下实现上面的功能。
代码贴出:
function intruderdetecting2
% 运动参数阈值
motionThreshold = 200; % 0 ~ 255
secondsToRecord = 10;
% 声音参数阈值
soundThreshold = 0.1; % 0.0 ~ 1.0
%声音麦克风
ai = analoginput;
addchannel;
set;
set;
set;
samplesToRecord = ceil;
set;
set;
set;
set;
%启动摄像头
a = imaqhwinfo;
[camera_name, camera_id, format] = getCameraInfo;
vid = videoinput;
set;
set;
triggerconfig;
start;
trigger;
try
wait;
catch
stop;
end
%启动函数,时间函数
set;
set;
set;
%创建figure
fig = figure('DoubleBuffer','on', ...
'Name', 'Intruder Detection', ...
'NumberTitle', 'off', ...
'WindowStyle', 'docked', ...
'Toolbar', 'none', ...
'MenuBar', 'none', ...
'Color',[.1 .1 .1], ...
'CloseRequestFcn', @figureCloseFcn, ...
'DeleteFcn', @figureDeleteFcn);
%对界面初始化
timePrevious = [];
start;
imagePrevious = [];
start;
%视频的启动函数
function videoStartFcn
imagePrevious = getsnapshot;
end
%声音启动函数
function soundStartFcn
timePrevious = now;
end
%视频时间函数
function videoTimerFcn
try
imageCurrent = getsnapshot;
timeCurrent = now;
catch
% getsnapshot can fail if object is deleted while we are waiting.
return;
end
samplesRequested = ceil * *...
ai.SampleRate);
warning;
try
sound = peekdata;
catch
sound = zeros);
end
warning;
sound = sound - mean); % Center about the mean.
soundMax = max)); % Calculate max deviation from mean.
timePrevious = timeCurrent;
% Make our figure current.
figOld = get;
%if fig ~= figOld
%set;
%end
%plot;
imageDifference = abs;
imageMax = max);
imagePrevious = imageCurrent;
figOld = get;
if fig ~= figOld
set;
end
image;
label = datestr;
xlabel;
set;
if imageMax > motionThreshold
motion = true;
else
motion = false;
end
if ~islogging
% 如果有东西闯入,进行响应
if motion
% 将figure变红
set;
% 将闯入者的视频发送到你的邮箱
str=['SB.jpg'];
imwrite; %保存拍下来的图像
customIntruderAction();
else
set;
end;
end
if ~islogging
% if noise
customIntruderAction();%有人闯入时发进行报警
if fig ~= figOld
set;
end
% end
end
%function customIntruderAction()
% [y,fs]=wavread;
% sound;
end
function figureCloseFcn
%关闭视频和声音
try
stop;
stop;
catch
end
closereq;
end
function figureDeleteFcn
delete;
delete;
end
end
纯M文件编程。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。