opencv 绘制目标矩形

//混合高斯模型

#include <cv.h>  
#include <highgui.h>  
#include <opencv2/opencv.hpp>
#include<iostream>
using namespace cv;  
int main(){
	VideoCapture video("video1.avi");
	Mat frame,mask,thresholdImage, output;
	video>>frame;
	int frameNum=1;
	BackgroundSubtractorMOG bgSubtractor(20,10,0.5,false);
	while(true){
		video>>frame;
		++frameNum;
		bgSubtractor(frame,mask,0.001);
		imshow("mask",mask);
		imshow("origin",frame);
Mat image = mask;
std::vector<std::vector<cv::Point> > contours ;  
    //获取轮廓不包括轮廓内的轮廓  
    cv::findContours(image , contours ,   
        RETR_EXTERNAL , CV_CHAIN_APPROX_NONE) ;  
    cv::Mat result(image.size() , CV_8U , cv::Scalar(0)) ;  
    cv::drawContours(result , contours ,  
        -1 , cv::Scalar(125) , 2) ;  
//绘制轮廓的最小外结矩形  
//int i = contours.size()-1;
//for(i;i>0;i--)
for(int i=0;i<contours.size();i++)
{
	RotatedRect rect=minAreaRect(contours[i]); //绘制轮廓的最小外结矩形   
        Point2f P[4];  
        rect.points(P);  
        for(int j=0;j<=3;j++)  
        {  
            line(result,P[j],P[(j+1)%4],Scalar(255),2);  
        }  
}
 

    cv::imshow("resultImage" , result) ; 




		waitKey(20);
	}
	return 0;
}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值