/*当对图片设置ROI后,在取消图片的ROI之前,对该图片的所以操作只被限于感兴趣区域*/
int main(void){
IplImage* src = NULL;
if ((src = cvLoadImage("d:\\15.jpg")) != 0){
//x, y,width, height, add分别是设置感兴趣区域左上角的横坐标,纵坐标,宽度,高度,以及区域内的改变量
int x, y, width, height, add;
//cin >> x >> y >> width >> height >> add;
x = 20, y = 20, width = 400, height = 400, add = 150;
//设置ROI
cvSetImageROI(src, cvRect(x, y, width, height));
//将src的元素与常量add相加放到src中
/*cvAddS函数原型:void cvAddS(const CvArr* scr,CvScalar value,CvArr* dst,const CvArr* mask=NULL)
把scr的元素与常量value相加放到dst里。
如果mask没有被设为NULL,那么mask中非零元素指定的dst元素值在函数执行后不变。
*/
/*
cvScalar第一个参数为blue,第二个为green, 第三个为red
*/
cvAddS(src, cvScalar(0, 0, add), src);
//取消ROI
cvResetImageROI(src);
cvNamedWindow("Roi_Add", 1);
cvShowImage("Roi_Add", src);
cvWaitKey();
}
return 0;
}