矩形框绘制_运动检测_OpenCV

本文分享了一个C++函数,该函数用于在运动检测结果中绘制矩形框,通过调用该函数即可实现矩形框的绘制。包括初始化变量、调用函数以及函数主体部分的详细解释。

原文地址:http://blog.youkuaiyun.com/tezhongjunxue/article/details/14648431


对于运动检测的结果,一般都会用到矩形框标出。下面分享一个函数,实现矩形框的绘制。很简单,调用一下即可。

1.先是在程序开始初始化变量,并原型声明。

[cpp]  view plain copy
  1. CvMemStorage *stor;  
  2. CvSeq *cont;  
  3. void DrawRec(IplImage* pImgFrame,IplImage* pImgProcessed,int MaxArea);  
2.调用函数。

[cpp]  view plain copy
  1. DrawRec(pImgFrame,pImgProcessed,16);  
3.函数主体。

[cpp]  view plain copy
  1. void DrawRec(IplImage* pImgFrame,IplImage* pImgProcessed,int MaxArea)  
  2. {  
  3.     //pImgFrame:初始未处理的帧,用于最后标出检测结果的输出;  
  4.     //pImgProcessed:处理完的帧,用于找运动物体的轮廓  
  5.   
  6.     stor = cvCreateMemStorage(0);  //创建动态结构和序列  
  7.     cont = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint) , stor);  
  8.       
  9.     // 找到所有轮廓  
  10.     cvFindContours( pImgProcessed, stor, &cont, sizeof(CvContour),   
  11.                     CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));  
  12.   
  13.     // 直接使用CONTOUR中的矩形来画轮廓  
  14.     for(;cont;cont = cont->h_next)  
  15.     {  
  16.               CvRect r = ((CvContour*)cont)->rect;  
  17.               if(r.height * r.width > MaxArea) // 面积小的方形抛弃掉  
  18.               {  
  19.                   cvRectangle( pImgFrame, cvPoint(r.x,r.y),   
  20.                           cvPoint(r.x + r.width, r.y + r.height),  
  21.                           CV_RGB(255,0,0), 1, CV_AA,0);  
  22.               }  
  23.     }  
  24.     cvShowImage("video", pImgFrame);  
  25. }  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值