关于OPENCV ROI的使用

最近在写一个多摄像头下的多目标跟踪系统,需要自己通过人体检测+人脸识别来确定初始跟踪目标,很显然,这里会有很多地方会用到ROI,我的思路是先用人体检测检测出人体部分,再对人体部分应用人脸检测,再进行人脸识别,确定身份之后再判断是否跟踪该目标,每一次检测出的区域都会用到ROI,这里需要说的是,这里有几个图像函数,cvCopy()、cvCopyImage()、cvCloneImage(),如果设置了ROI,则前两个函数只复制ROI区域,最后一个函数会复制原始的整幅图像。以下是我的人脸检测函数:

void VideoHandler::FaceDetect(IplImage* inimage, IplImage* outimage)
{
std::vector<Rect> faces;
//最多可存放4个通道的像素值
static CvScalar colors[] =
{
{ { 0, 0, 255 } },
{ { 0, 255, 0 } }
}; //定义为静态变量使得该数组在每一次函数调用时都保持上一次调用的状态
float scale = 1.3;
IplImage* gray = cvCreateImage(cvSize(inimage->roi->width,inimage->roi->height ), 8, 1);//图像位深度为8,单通道,,存放灰度图和输入图像同样大小


/*typedef struct CvSize
{

int width;  //矩形宽
int height; // 矩形高
}CvSize;
*/
if (inimage->nChannels == 3)//如果输入图像为三通道图像,则转换为单通道图像
{
cvCvtColor(inimage, gray, CV_BGR2GRAY);
}
else

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值