opencv 之运动物体检测(二)

1)运动物体轮廓椭圆拟合及中心

vector<vector<Point>contours;
vector<Vec4i>hierarcy;
findContours(diff,,contours,hierarcy,CV_RETR_EXTERNAL,CV_CHAIN_APPPROX_NONE);
cout<<"num"<<contours.size()<<endl;
vector<RotatedRect>box(contours.size());
Point2f rect[4];
for(int i=0;i<contours.size();i++)
{
  box[i]=fitEllipse(Mat(contours[i]));
  ellipse(result,boc[i],Scalar(0,255,0),2,8);
  circle(result,box[i].center,3,Scalar(0,0,255),-1,8);
}

2)滤波方法去除噪声
去除椒盐噪声用中值滤波
均值滤波
3)轮廓筛选去除噪声
4)运动轨迹绘制
5)简单车辆计数程序
帧差法 找到运动物体 然后腐蚀膨胀
圈出轮廓 找出外接矩形

猜你喜欢

转载自blog.csdn.net/xujaiwei/article/details/75095477