OPENCV对摄像头ROI区域设定的问题

怎么把下面对图片进行ROI设定的代码改成对摄像头ROI区域的设定

#include
#include
using namespace std;

int main (int argc, char **argv)
{

// 加载原图像
IplImage* img = cvLoadImage("F://12.jpg");
// 创建新的要显示感兴趣区域的图像
IplImage* img2 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);
// 创建感兴趣ROI矩形区域
CvRect rect = cvRect(100,100,500,500);
cvCopy(img,img2);
cvSetImageROI(img2,rect);
cvNamedWindow("源图像",1);
cvShowImage("源图像",img);
cvNamedWindow("ROI图像",1);
cvShowImage("ROI图像",img2);
while(1)
{
if(cvWaitKey(100) == 27)
break;
}
cvDestroyWindow("源图像");
cvDestroyWindow("ROI图像");
cvReleaseImage(&img);
cvReleaseImage(&img2);
}

#include
#include
using namespace std;

int main(int argc, char **argv)
{
// 加载原图像
CvCapture* capture = cvCaptureFromCAM(0); // capture from video device #0

IplImage* img = 0;
if (!cvGrabFrame(capture)){ // 抓取一帧,失败退出
printf("Could not grab a frame\n");
exit(0);
}
img = cvRetrieveFrame(capture); // 恢复获取的帧图像
// 创建新的要显示感兴趣区域的图像
IplImage* img2 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
// 创建感兴趣ROI矩形区域
CvRect rect = cvRect(10, 20, 200, 250);
cvCopy(img, img2);
cvSetImageROI(img2, rect);
cvNamedWindow("源图像", 1);
cvShowImage("源图像", img);
cvNamedWindow("ROI图像", 1);
cvShowImage("ROI图像", img2);
while (1)
{
if (cvWaitKey(100) == 27)
break;
}
cvDestroyWindow("源图像");
cvDestroyWindow("ROI图像");
cvReleaseImage(&img);
cvReleaseImage(&img2);
}

感兴趣区域的部分要自己设定。

(一)感兴趣区域ROI

在图像处理中,我们常常需要设置感兴趣区域(ROI,region of interest),来专注或者简化工作过程.也就是从图像中选择一个图像区域,这个区域是图像分析所关注的重点。我们圈定这个区域,以便进行进一步处理.而且,使用ROI指定想读入的目标,可以减少处理时间,增加精度,给图像处理带来不小的便利

  在C++中定义ROI区域有两种方法:

1---使用表示矩形的Rect

     2---使用range

     3--OpemCv1.x中的setImageROI()函数

  在这里,我就不多说了,可以参考OpenCv的官方教程和相应的源码

(二)python中ROI区域的设置

#coding:utf-8
#===============================================
#文件说明:

第三节:图像处理---之---在python下,怎样使用OpenCv设置ROI区域

#开发环境:

Ubuntu14.04+Python2.7+IDLE+IPL

#时间地点:

陕西师范大学 2016.11.19

#作  者:

九月

#===============================================
'''【模块1】感兴趣区域的设置ROI'''
#1--Python中ROI区域的设置也是使用Numpy中的索引来实现的
import cv2
import numpy as np

srcImg = cv2.imread("/home/wei/Image/cat.png",cv2.CV_LOAD_IMAGE_COLOR)
cv2.imshow("[srcImg]",srcImg) #[1]显示原始图片

roiImg = srcImg[20:150,170:350]          #[2]我们使用numpy中的数组切片的方式m截取载入图片上的猫头部分,
  # 然后,将截取的这部分ROI区域的图片保存在roiImg矩阵变量中
srcImg[0:130,0:180] = roiImg            #[3]在这一步,我们将截取的ROI区域部分添加到原如的指定的区域
cv2.imshow("[roiImg]",srcImg)           #[4]显示添加的ROI区域的图片