视频帧,检测人

4视图(30天)
汉
2018年3月1日
评论道: 图像分析 2018年3月2日
嗨,所有
我要写一个程序来检测人穿着白色的东西. .不管它。
我面临的困难将视频帧,所以我比较它与背景!
代码:
函数ForMe_OpeningFcn (hObject eventdata处理,变长度输入宗量)
vid = videoinput (“winvideo”1);
句柄。视频=视频;
集(handles.video,“TimerPeriod”,0.05,
“TimerFcn”,(“如果(~ isempty (gco)),
'处理= guidata (gcf);“
图像(getsnapshot (handles.video)),“
“集(handles.axes1,“ytick”, [],“xtick”, []),“
“其他”
“结束”]);
集(vid,“FramesPerTrigger”1);
%视频。FrameGrabInterval = 2;
集(vid,“TriggerRepeat”、正);
triggerconfig(视频,“手动”);
句柄。输出= hObject;
guidata (hObject处理);
uiwait
% - - - - - -执行在pushbutton1按钮按下。
函数pushbutton1_Callback (hObject eventdata处理)
vid = handles.video;
开始(vid);
触发(vid);
BackgroundImage = getsnapshot (vid);
I1 = rgb2gray(分辨率);
图;
次要情节(2 2 1);
imshow (I1);
标题(“背景”);
暂停(2);
1
帧= getdata (vid);
I2 = rgb2gray(帧);
次要情节(2,2,2);
imshow (I2);
标题(“帧”);
暂停(2);
对象= I1 ~ = I2;
BlobAnalysis = vision.BlobAnalysis (“MinimumBlobArea”,20000,“MaximumBlobArea”,40000);
[]边界框(面积、质心、大小)=步骤(BlobAnalysis,对象);
(行,坳)=大小)边界框((大小);
i = 1:行
(我,1)边界框(x =大小);
(我,2)边界框(y =大小);
(我,3)边界框(w =大小);
(我,4)边界框(h =大小);
TestImage =帧((y + h), x: (x + w):);
r = TestImage (:,: 1);
g = TestImage (:: 2);
b = TestImage (:: 3);
次要情节(2、2、3);
标题(“直方图”);
histogram2 (r, g,“DisplayStyle”,“瓦”,“ShowEmptyBins”,“上”,
“XBinLimits”255年[0],“YBinLimits”255年[0]);
直方图(r,“BinMethod”,“整数”,“FaceColor”,“r”,“EdgeAlpha”0,“FaceAlpha”,1)
持有
直方图(g,“BinMethod”,“整数”,“FaceColor”,‘g’,“EdgeAlpha”0,“FaceAlpha”,0.7)
直方图(b,“BinMethod”,“整数”,“FaceColor”,“b”,“EdgeAlpha”0,“FaceAlpha”,0.7)
包含(“RGB值”)
ylabel (“频率”)
标题(颜色直方图的)
xlim (257 [0])
阈值= 2097150;
仅仅= graythresh (TestImage (:,: 1)) * 255
高等= graythresh (TestImage (:,: 2)) * 255
蓝芽= graythresh (TestImage (:,:, 3)) * 255
如果(仅仅* *高等蓝芽> =阈值)
% Ishape = insertShape(,边界框(对象,“矩形”,大小)“颜色”、“绿色”、“线宽”,6);
对话框(“报警是白色的!”);
负载gong.mat;
(仅仅* *高等蓝芽> =阈值)%无限循环
声音(y);
lastTime =时钟;
结束(时钟,lastTime) < 5
暂停(0.03);
结束
打破;
结束
其他的
对话框(“好吧”);
结束
清晰的TestImage;
结束
结束
% - - - - - -执行在pushbutton2按钮按下。
函数pushbutton2_Callback (hObject eventdata处理)
vid = handles.video;
停止(vid);
guidata (hObject,处理)
错误:
错误事件发生在00:17:26视频输入对象:MJPG_1280x720-winvideo-1。
GETDATA超时之前帧。
错误使用imaqdevice / getdata(第148行)
GETDATA超时之前帧。
错误在印版> pushbutton1_Callback(第87行)
帧= getdata (vid);
错误在gui_mainfcn(第95行)
函数宏指令(变长度输入宗量{:});
错误在印版(42)行
gui_mainfcn (gui_State变长度输入宗量{:});
错误
matlab.graphics.internal.figfile.FigFile /阅读> @ (hObject, eventdata)形式(“pushbutton1_Callback”hObject eventdata, guidata (hObject))
错误使用uiwait(第81行)
错误而评估UIControl回调
结构体内容从non-struct数组对象的引用。
错误在印版> ForMe_OutputFcn(第71行)
varargout {1} = handles.output;
错误在gui_mainfcn(第264行)
函数宏指令(gui_State。gui_OutputFcn gui_hFigure, [], gui_Handles);
错误在印版(42)行
gui_mainfcn (gui_State变长度输入宗量{:});
谢谢你!

答案(1)

图像分析
图像分析 2018年3月1日
它看起来像你的相机不是发送视频,也许是因为你手动设置触发器。我没有任何经验,手动触发。我不使用它,我只是让摄像机运行所有的时间和调用getsnapshot()来抓取一帧的视频直播。
2的评论
图像分析
图像分析 2018年3月2日
我不知道。我不能告诉只要看你的一个GUI功能。另外,我没有相同类型的相机。电话技术支持。万博1manbetx

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!