首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

视频文件,检测时只对指定区域进行检测,该怎么处理

2012-02-06 
视频文件,检测时只对指定区域进行检测cvSetImageROI在运动物体跟踪例程中,想指定一矩形区域,只检测该区域,

视频文件,检测时只对指定区域进行检测
cvSetImageROI 
在运动物体跟踪例程中,想指定一矩形区域,只检测该区域,但是
cvSetImageROI(pImg, cvRect(x,y,width,height));
pTracker->Process(pImg, pMask);//???该地方不对,我使用cvSetImageROI 影响到了那个地方,需要如何匹配??


[解决办法]
cvSetImageROI函数改变IplImage结构体中的roi字段,
一个没有ROI区域的图像其roi指针=NULL,

这个和你Process函数的写法是有关的,如果自己写函数的话需要考虑roi是否=NULL的,
我倒也没有仔细查看过opencv源代码是如何实现的,
我自己写处理带有roi区域的图像,如果性能要求不高的话,就是先生成一个工作图像,然后在工作图像上处理。

例如针对你的问题就是:

IplImage *pwkrImg
if (pImg->roi) {
pwkrImg=cvCreateImage(cvGetSize(pImg),pImg->depth,pImg->channel);
cvCopy(pwkrImg,pImg);
} else pwkrImg=pImg;

然后再
pTracker->Process(pwkrImg,pMask);

最后记得析构
if (pImg->roi) cvReleaseImage(&pwkrImg);

热点排行