我想玩我的摄像头和OpenCV。 我关注此tuto:http://mateuszstankiewicz.eu/?p=189。 但我唯一的结果是一个红色的边框,我不明白为什么。任何人都可以帮助我做出正确的解决方案吗?运动检测与OpenCV c + +
这里是我的代码:
#include "mvt_detection.h"
Mvt_detection::Mvt_detection()
{
}
Mvt_detection::~Mvt_detection()
{
}
cv::Mat Mvt_detection::start(cv::Mat frame)
{
cv::Mat back;
cv::Mat fore;
cv::BackgroundSubtractorMOG2 bg(5,3,true) ;
cv::namedWindow("Background");
std::vector<std::vector<cv::Point> > contours;
bg.operator()(frame,fore);
bg.getBackgroundImage(back);
cv::erode(fore,fore,cv::Mat());
cv::dilate(fore,fore,cv::Mat());
cv::findContours(fore,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
cv::drawContours(frame,contours,-1,cv::Scalar(0,0,255),2);
return frame;
}
这里是我们的凸轮回报的截图:
感谢您的帮助:)。
你可以添加一个'cv :: namedWindow(“foreground”); CV :: imshow( “前景”,前); cv :: waitKey(30);'?在那里你可以看到图像中是否可以检测到运动。如果前景不可见,背景减法不适合您的问题。示例图像/视频也不错! – Micka
嗨, 我在同一个项目(我们是学生,这是一个学校项目)。 我试图展示“前”形象。 图像全黑。那么,我想我们不能使用这种方法? 是否因为网络摄像头质量不足? 谢谢 – ogdabou
@Micka:当cv :: BackgroundSubtractorMOG2 bg(5,3,true);'为true时,我得到一个白色窗口,当它是'false'时,我得到一个白色窗口 – Lenjyco