OpenCV —— ROI

通过 cvResetImageRoI 函数释放ROI是非常重要的,否则其他操作将默认在ROI区域中进行

通过巧妙的使用widthStep,可以达到同ROI一样的效果 —— 如果想设置和保持一副图像的多个子区域处于活动状态(ROI 只能串行处理并且必须不断的设置和重置)

#include <cv.h>
#include <highgui.h>

int main(int argc,char** argv)
{
    IplImage* src;

    src=cvLoadImage("wukong.jpg",CV_LOAD_IMAGE_COLOR);

//     cvSetImageROI(src,cvRect(50,50,100,100));
//     cvAddS(src,cvScalar(90),src);
//     cvResetImageROI(src);

    CvRect rect=cvRect(50,50,100,100);
    IplImage* sub_img=cvCreateImageHeader(cvSize(rect.width,rect.height),src->depth,src->nChannels);
    sub_img->origin=src->origin;
    sub_img->widthStep=src->widthStep;
    sub_img->imageData=src->imageData+rect.y*src->widthStep+rect.x*src->nChannels;
    cvAddS(sub_img,cvScalar(90),sub_img);

    cvNamedWindow("w1");
    cvShowImage("w1",sub_img);
    cvWaitKey();

    cvReleaseImageHeader(&sub_img);
    cvDestroyWindow("w1");
    return 0;
}

OpenCV —— ROI,布布扣,bubuko.com

时间: 2024-08-10 17:17:00

OpenCV —— ROI的相关文章

opencv ROI(感兴趣区域替换)

#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main() { Mat img=imread("1.jpg"); Mat imgTemp=img.clone(); Mat logo = imread("2.jpg"); Mat roi = imgTemp(Rect(50, 50, logo.cols, logo.rows)); logo.co

OpenCv ROI操作

Mat img, dst; Rect imgroi(0, 0, img.cols, img.rows);//小图像img需要复制到大图的像素区域rect Rect dstroi(0, 0, img.cols, img.rows);//大图像dst中接收的区域rect Mat dstregion = dst(dstroi);//获取大图像dst接收区域的像素应用 img(imgroi).convertTo(dstregion, dstregion.type(), 1, 0);//将图像img的该区

关于opencv中cv::Mat设置roi

opencv中设置roi实验: 1 cv::Mat SrcImg; 2 SrcImg = cv::imread("../resource/cpw3.png"); 3 cv::imshow("原图像",SrcImg); 4 5 // 第一次提取部分ROI 6 cv::Rect SrcImgROI = cv::Rect( SrcImg.cols/2, 0, SrcImg.cols/2, SrcImg.rows/2); 7 cv::Mat SrcROIImg = SrcI

【OpenCV入门教程之四】 ROI区域图像叠加&amp;初级图像混合 全剖析(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20911629 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像

[zt] ROI (Region of Interest) 感兴趣区域 OpenCV

在以前介绍IplImage结构的时候,有一个重要的参数——ROI.ROI全称是”Region Of Interest”,即感兴趣的区域.实际上,它是IPL/IPP(这两个是Inter的库)结构IplROI的实例.IplROI包含xOffset.yOffset.height.width和coi成员变量.其中COI代表channel of interest(感兴趣的通道).ROI的思想是:一旦设定ROI,通常组用于整幅图像的函数便只会对ROI所表示的子图像进行操作.如果COI被设置非0值,则对该图像

opencv学习之路(10)、ROI与mask掩码

一.ROI 1 #include<opencv2/opencv.hpp> 2 using namespace cv; 3 4 void main(){ 5 Mat img=imread("E://0.jpg"); 6 Mat logo=imread("E://opencv.jpg"); 7 Mat ROI=img(Rect(20,20,logo.cols,logo.rows));//x,y,w,h xy坐标,宽度,高度 8 //Mat ROI=img(R

opencv学习笔记(04)——ROI

ROI的用法:1.直接相加:2.掩码法 #include <opencv2\highgui\highgui.hpp> #include <opencv2\imgproc\imgproc.hpp> #include <opencv2\core\core.hpp> int main() { cv::Mat img_original = cv::imread("F:\\images\\boldt.jpg"); cv::Mat logo = cv::imre

【OpenCV】复制、切割出图像ROI区域

对图像设定ROI的函数是: cvSetImageROI(IplImage* src,CvRect rect); src 表示的是源图像, rect 指的是ROI区域. 如果要取消ROI区域,那么使用函数: cvResetImageROI(IplImage* src); 这个函数,就把src上的ROI区域取消掉. 举例: #include <opencv/cv.h> #include <opencv2/highgui/highgui.hpp> using namespace cv;

OpenCV Cut Image via ROI 根据兴趣区域剪裁图片

我们在使用OpenCV时,有时候需要对现有图片剪裁,比如只需要一个小窗口中的内容,那么我们可以通过OpenCV的兴趣区域 Region of Interest (ROI) 来很轻易的实现,操作也很简单,首先建立一个新的IplImage图片,大小为你需要剪裁出来的大小,然后建立一个该大小的CvRect变量,用来设定原图片的ROI的范围,然后此时拷贝原图片到新图片,就得到我们需要的内容了,最后别忘了把原图片的ROI还原,参见代码如下: IplImage *img = cvLoadImage("ima