精华内容
下载资源
问答
  • opencv ROi区域图像叠加

    2019-06-09 15:54:19
    定义ROI区域的方法有两种 (1 )使用Rect()函数 Rect里面的四个参数分别是矩形左上角的横、纵坐标,矩形的长。宽。 (2)使用Range()函数 我们可以通过一个图像掩膜(mask),直接将插入处的像素设置为logo...

    本文主要是对一张图片中的感兴趣区域ROI进行叠加
    定义ROI区域的方法有两种
    (1 )使用Rect()函数
    在这里插入图片描述
    Rect里面的四个参数分别是矩形左上角的横、纵坐标,矩形的长。宽。
    (2)使用Range()函数
    在这里插入图片描述
    我们可以通过一个图像掩膜(mask),直接将插入处的像素设置为logo图像的像素值,具体程序如下:
    #include<opencv2/core/core.hpp>
    #include<opencv2/highgui/highgui.hpp>
    #include
    using namespace cv;
    using namespace std;
    int main()
    {
    Mat image = imread(“3.jpg”);
    Mat logo = imread(“4.jpg”);
    if (!image.data || !logo.data)
    {
    cout << “读取图像有误,请重新读入正确途径!” << endl;
    return false;
    }
    imshow(“haha”, image);
    imshow(“xixi”, logo);
    Mat imageROI;
    imageROI = image(Rect(30, 30, logo.cols, logo.rows));
    Mat mask = imread(“4.jpg”,0);
    logo.copyTo(imageROI, mask);
    namedWindow(“原图+logo”);
    imshow(“原图+logo”, image);
    imwrite(“由imwrite生成的图片.jpg”, image);
    waitKey(0);
    return 0;
    }

    结果如下:
    在这里插入图片描述
    可以通过修改rect()函数里面左上角左边来调整里面logo的大小,
    在这里插入图片描述
    除此之外我们可以通过addWeighted函数来进行图像混合操作,具体代码如下(只需改一两条语句):

    Mat imageROI;
    imageROI = image(Rect(30, 700, logo.cols, logo.rows));
    addWeighted(imageROI, 0.5, logo, 0.3, 0, imageROI);

    结果如下:
    在这里插入图片描述
    在这里插入图片描述
    明显可以看出,第二种方法更好的将logo融于原图中。

    在运行的时候,也遇到过一个错误,

    在这里插入图片描述
    这主要是由于图片插入的位置超过了原图的大小,只要调整logo的左上角的点的坐标即可。

    上述程序借鉴参考书《OpenCV3编程入门》。

    展开全文
  • Opencv ROI区域图像叠加

    2017-11-13 22:28:01
    本文主要学习opencv中如何定义感兴趣区域ROI(region of interest)以及在感兴趣区域进行图像的叠加

    本文主要学习opencv中如何定义感兴趣区域ROI(region of interest)以及在感兴趣区域进行图像的叠加

      定义ROI的方法有两种:
    1、使用表示矩形区域的Rect,指定表示矩形的左上角坐标和矩形的长宽;

    Mat imageROI;
    imageROI = image(Rect(500,250,logo.cols,logo.rows));

    2、指定感兴趣区域的行或列的范围range,range指从起始索引到终止索引的一连段连续序列。

    imageROI = image(Range(250,250+logo.rows),Range(200,200+logo.cols);

    下面演示在ROI区域实现图像叠加的例子;

    #include<iostream>  
    #include <opencv2\opencv.hpp>  
    
    using namespace cv;
    
    int main()
    {
        Mat srcImage1 = imread("3.png");
        Mat logoImage = imread("logo.png");
        if (!srcImage1.data){
            printf("读取错误!");
            return -1;
        }
        if (!logoImage.data){
            printf("读取错误!");
            return -1;
        }
        Mat imageROI = srcImage1(Rect(100, 150, logoImage.cols, logoImage.rows));
        Mat mask = imread("logo.png", 0);
        logoImage.copyTo(imageROI, mask);
        namedWindow("利用ROI实现图像叠加示例窗口");
        imshow("利用ROI实现图像叠加窗口", srcImage1);
        waitKey();
        return 0;
    }

    结果如下:

    这里写图片描述

    展开全文
  • ROI = image[startY:endY, startX:endX]
    ROI = image[startY:endY, startX:endX]
    展开全文
  • OpenCV ROI区域图像叠加

    千次阅读 2016-09-12 18:30:25
    这个函数首先是载入了两张png图片到srcImage1和logoImage中,然后定义了一个Mat类型的imageROI,并使用cv::Rect设置其感兴趣区域为srcImage1中的一块区域,将imageROI和srcImage1关联起来。接着定义了一个Mat类型的...

    这个函数首先是载入了两张png图片到srcImage1和logoImage中,然后定义了一个Mat类型的imageROI,并使用cv::Rect设置其感兴趣区域为srcImage1中的一块区域,将imageROI和srcImage1关联起来。接着定义了一个Mat类型的的mask并读入dota_logo.jpg,顺势使用Mat:: copyTo把mask中的内容拷贝到imageROI中,于是就得到了最终的效果图,namedWindow和imshow配合使用,显示出最终的结果。


    图像掩膜(mask):用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。④特殊形状图像的制作。


    在下面的代码中,我们通过一个图像掩膜(mask),直接将插入处的像素设置为logo图像的像素值,这样效果会很赞很逼真:

    //-----------------------------------【程序说明】----------------------------------------------
    //  程序名称::【OpenCV入门教程之三】图像的载入,显示与输出 
    
    //------------------------------------------------------------------------------------------------
    
    
    #include<opencv2/core/core.hpp>
    #include<opencv2/highgui/highgui.hpp>
    using namespace cv;
    
    int main()
    {
    	//【1】读入图像
    	Mat srcImage1 = imread("dota.png");
    	Mat logoImage = imread("dota_logo.png");
    	//【2】定义一个Mat类型并给其设定ROI区域
    	Mat imageROI = srcImage1(Rect(200, 250, logoImage.cols, logoImage.rows));
    
    	//【3】加载掩模(必须是灰度图)
    	Mat mask = imread("dota_logo.png", 0);
    
    	//【4】将掩膜拷贝到ROI
    	logoImage.copyTo(imageROI, mask);
    
    	//【5】显示结果
    	namedWindow("<1>利用ROI实现图像叠加示例窗口");
    	imshow("<1>利用ROI实现图像叠加示例窗口", srcImage1);
    
    	waitKey();
    
    }


    展开全文
  • //【2】定义一个Mat类型并给其设定ROI区域 Mat imageROI= srcImage1(Rect(200,250,logoImage.cols,logoImage.rows)); //【3】加载掩模(必须是灰度图) Mat mask= imread("/Users/administrator/Desktop/...
  • 在前面分别介绍的设定感兴趣区域ROI和使用addWeighted函数进行图像线性混合的基础上,我们还将他们两者中和起来使用,也就是先指定ROI,并用addWeighted函数对我们指定的ROI区域的图像进行混合操作,我们将其封装在...
  • 虽然使用opencv大多不使用ui,但是这次输出的图像用来对比比较有意义,我为了让他们输出在界面上好看一些,弄了一下午,达到如下效果。1.先说一下QT label中输出opencv Mat图像的事情: 因为使用Imread读入的Mat...
  • opencv roi代码

    2018-01-20 15:05:41
    opencvroi出错,因此提交一个自己写的替换代码,感兴趣区域(ROI) 是从图像中选择的一个图像区域,
  • OpenCV-ROI区域图像叠加

    2018-11-23 13:43:11
    ROI区域图像叠加,图片和代码都包含,工程已经可以运行
  • opencv roi

    千次阅读 2013-09-13 09:33:59
    Opencv中的ROI介绍 ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续的程序需要单独处理这一个小区域,如图所示 ROI非常有用,例如我们想把图像中的人脸扣出来,进行人脸识别。需要注意的时候,ROI...
  • OpenCV绘制ROI区域

    2021-08-12 20:25:12
    需求,拖动鼠标产生矩形,截取ROI区域。 此绘制方式和大部分的方式不同。传统使用矩形框绘制必须要起点(sp)大于终点(ep),因此绘制矩形框只能如下。 这是由于在OpenCV中矩形框的语法为Rect(x,y,dx,dy)。其中x,y为...
  • OpenCVROI区域透明处理

    千次阅读 2017-12-13 14:03:11
    1、获取原始图像1的ROI区域ROI区域与原始图像2大小相同; 2、将两张大小和通道数相同的图像(ROI和原始图像2)进行加权,加权后图像为透明状; 3、将加权后的图像转换为灰度图作为掩模; 4、将加权后的透明图像...
  • OpenCVROI区域&图像混合例程by浅墨

    千次下载 热门讨论 2014-03-10 13:04:56
    利用OpenCV载入了dota2英雄幻影刺客的原画和dota2 logo,进行ROI区域定义和图像混合处理的一个非常有趣的示例程序。 博文《【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析》的配套详细注释源代码。 ...
  • 感兴趣区域ROI 1)ROI介绍 **ROI–感兴趣的区域 **一般为矩形区域 **能够定义分析重点,减少处理时间,增减精度 **定义方法: 使用Rect表示矩形区域或者用Range设定行列范围 ex1: Mat img=imread(“1.jpg”...
  • opencv提取ROI区域

    万次阅读 2013-09-26 23:54:06
    #include #include #include using namespace std; void GetROI(IplImage *src,IplImage *dst,int height,int width) { //IplImage *src = cvLoadImage("E:\\3.jpg"); int srcHeight=src->height;
  • Java应用OpenCV指南其四:OpenCV获取ROI区域、图像叠加 我们将在本篇文章了解OpenCV中感兴趣区域的获取方法,并进行简单的图象叠加操作,最后,将要初步了解矩阵的相关操作。一、 ROI区域选取 ROI(Region of ...
  • opencvROI区域的提取

    2021-04-17 19:11:31
    首先利用dlib库识别出了人脸区域,现在要将识别出来的人脸区域进行保存,即提取ROI区域: 代码原来是利用便利的方式,写了两层循环来给新图像赋值 for ii in range(height * 2): for jj in range(width * 2): ...
  • 本文主要是对《OpenCV3编程入门》这本书中的5.2.1 感兴趣区域ROI这一节的ROI_AddImage()函数进行改进,使得其能通用至少13次嘻吸!顺便在改进过程中,对相应参数知识了解更细致点,因为初学所以可能并没有多高深,...
  • int main() { cv::Mat src = cv::imread("1.jpg",0); cv::Mat cut = src(cv::Rect(0,0,10,10));//cv::Rect四个参数分别为起始x坐标,起始y坐标,截取宽度,截取高度 cv::imshow("cut",cut); ...
  • opencv ROI操作

    2019-05-28 16:54:00
    copyTo 函数将小图像复制到大图像的制定区域 srcBw.copyTo(Temp(Range(1, m_Size.height + 1), Range(1, m_Size.width + 1))); cv::floodFill(Temp, Point(0, 0), Scalar(255)); Mat cutImg;//裁剪延展的图像 ...
  • [opencv笔记四]opencv roi

    千次阅读 2018-10-07 21:08:27
    roi 感兴趣的区域,可以减少数据处理量,或是用来截图。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,132
精华内容 3,652
关键字:

opencvroi区域