精华内容
下载资源
问答
  • ROI区域

    千次阅读 2018-03-16 22:00:56
    前言:在图像处理中,我们常常需要设置感兴趣区域(ROI,region of interest),来专注或者简化工作过程。也就是从图像中选择一个图像区域,这个区域是图像分析所关注的重点。import cv2 import numpy as np img = cv2....

    前言:在图像处理中,我们常常需要设置感兴趣区域(ROI,region of interest),来专注或者简化工作过程。也就是从图像中选择一个图像区域,这个区域是图像分析所关注的重点。

    import cv2
    import numpy as np
    img = cv2.imread('.\McGrady.jpg')
    num = img[208:261,235:390]    #列表中第一个元素表示纵向像素点的起始和终点;第二个元素表示横向。
    img[0:53,0:155] = num         #将上述区域的图像添加到原图像区域[0:53,0:155]上。注意两个区域的大小要相等。
    cv2.namedWindow('McGrady',cv2.WINDOW_NORMAL)
    #显示图片
    cv2.imshow('McGrady',img)
    #当按下ESC键时,退出程序窗口
    k = cv2.waitKey(0)
    if k == 27:
        cv2.destroyAllWindows()

    结果:


    展开全文
  • 对一枚硬币进行处理,保留其ROI区域,并将非ROI区域颜色置0
  • ROI 区域提取

    2013-03-17 17:47:58
    ROI 区域提取
  • C++设置ROI区域

    2016-07-13 13:13:38
    图像切割,设置ROI区域
  • 1.定义ROI区域 region of interest 2.用addWeighted函数进行图像混合 感兴趣区域的定义方法: 1.第一种是使用表示矩形的区域ROI,Rect指定矩形的左上角坐标,和矩形的长宽,.cols,.rows定义的 Mat imageROI; imgROI=...

    1.定义ROI区域 region of interest
    2.用addWeighted函数进行图像混合
    感兴趣区域的定义方法:
    1.第一种是使用表示矩形的区域ROI,Rect指定矩形的左上角坐标,和矩形的长宽,.cols,.rows定义的
    Mat imageROI;
    imgROI=image(Rect(0,0,XX.cols,XX.rows));
    2.第二种是区域的选取:
    imageROI=image(Range(0,XX.rows),Range(0,XX.cols));
    显示如何利用ROI区域将一幅图像加到另一幅图像的指定位置,是加到不是融合;
    bool ROI_AddImage()
    {
    Mat img1=imread(“1.jpg”);
    Mat img2=imread(“2.jpg”);
    if(!img1.data){printf(“载入图片1出错”);return false;}
    if(!img2.data){printf(“载入图片2出错”);return false;}

    Mat imgROI=img1(Rect(0,0,img2.cols,img2.rows));

    Mat mask=imread(“img2”,0);
    img2.copyTo(imgROI,mask);//把图像放到指定区域中 mask可有可无,记住mask有的话就会使添加到指定区域更加逼真
    imshow(“图像融合1”,img2); //图像融合的过程必须是相同大小的图片和图片的类型相同
    return true;
    }
    将一幅图像添加到指定的区域
    第二章:图像的线性混合操作
    线性混合是一个典型的二元的像素操作:理论公式为:
    g(x)=(1-a)f1(x)+af2(x); 前面的系数代表了图像混合的响应比例
    采用的函数就是:addWeighted();
    计算数组加权和:addWeighted();函数
    addWeighted(1,2,3,4,5,6,7);1:输入的第一幅图片,2:第一幅图片的权重,3:输入第二幅图片,4:第二幅图片的权重,5:一个加到权重总和上的标量值,6:输出融合之后的图片,7:输出阵列的深度,这个深度是可以选择的
    进行图像加权融合的时候必须要两幅图像的尺寸大小相同,图像的类型是一致的
    bool linerBlending()
    {
    Mat img3=imread(“3.jpg”);
    Mat img4=imread(“4.jpg”);
    if(!img3.data){printf(“载入图片3错误”);return false;}
    if(!img4.data){printf(“载入图片4错误”);return false;}
    Mat dstImage;
    double alphaValue=0.3;
    double betaValue=(1-alphaValue);
    addWeighted(img3,alphaValue,img4,betaValue,0.0,dstImage);
    imshow(“线性融合图像”,dstImage);
    }
    初级图像的融合:指定区域的图像线性融合
    bool ROI_LinerBlending()
    {
    Mat img5=imread(“5.jpg”);
    Mat img6=imread(“6.jpg”);
    Mat dst1Image;
    if(!img5.data){printf(“载入图片5错误”);return false;}
    if(!img6.data){printf(“载入图片6错误”);return false;}
    Mat img2ROI=img6(Rect(0,0,img5.cols,img5.rows));
    addWeighted(img5,0.4,img2ROI,0.7,0.0,dst1Image);
    imshow(“指定区域的线性融合”,img6);
    return true;
    }
    指定区域的线性图像融合;

    展开全文
  • 图片的ROI区域提取

    2018-05-22 17:14:54
    用于matlab中图片的ROI区域提取,若对彩色图片的处理需要改一改,只是爲了方便,不喜勿噴。。。。。。。
  • OpenCV-ROI区域图像叠加

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

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

     

    实现步骤:

    1、获取原始图像1的ROI区域,ROI区域与原始图像2大小相同;

    2、将两张大小和通道数相同的图像(ROI和原始图像2)进行加权,加权后图像为透明状;

    3、将加权后的图像转换为灰度图作为掩模;

    4、将加权后的透明图像和掩模进行处理,然后拷贝到原始图像的ROI区域上。

    示例代码: 

    #include <opencv2/core.hpp>
    #include <opencv2/highgui.hpp>
    #include <opencv2/imgproc.hpp>
    #include <iostream>
    
    #define WINDOW_NAME "主窗口"
    
    int main()
    {
    	cv::Mat dstImage, grayImage, maskImage;
    	//图像文件名称
    	const std::string fileName = "琴女.jpg";
    	
    	//两图像的权值
    	double alphaValue = 0.3;
    	double betaValue = 1 - alphaValue;
    
    	//创建一张粉色图像
    	cv::Mat pinkImage = cv::Mat(200, 250, CV_8UC3, cv::Scalar(230, 130, 255));
    	cv::imshow("pinkImage", pinkImage);
    
    	//创建窗口
    	cv::namedWindow(WINDOW_NAME,cv::WINDOW_AUTOSIZE);
    	//加载图像
    	cv::Mat srcImage = cv::imread(fileName,1);
    	//判断是否加载成功
    	if (srcImage.empty())
    	{
    		std::cout << "load image failed !";
    		return -1;
    	}
    	
    	//获取ROI图像
    	cv::Mat roiImage = srcImage(cv::Rect(50,50, pinkImage.cols,pinkImage.rows));
    	cv::imshow("roiImage", roiImage);
    	
    	//加权处理
    	cv::addWeighted(pinkImage, alphaValue, roiImage, betaValue, 0.0, dstImage);
    	cv::imshow("dstImage", dstImage);
    	
    	//转换为灰度图
    	cv::cvtColor(dstImage, grayImage,CV_BGR2GRAY);
    	
    	//掩模
    	maskImage = grayImage.clone();
    	
    	//将dstImage和maskImage处理后拷贝给roiImage
    	dstImage.copyTo(roiImage, maskImage);
    	
    	cv::imshow(WINDOW_NAME, srcImage);
    	cv::waitKey();
    	//销毁所有窗口
    	cv::destroyAllWindows();
    	return 0;
    }

    显示结果:

     

     

    展开全文
  • 主要通过重写qlabel显示图像,并在图像上画出矩形框进行图片ROI区域的选取,主要用到了重新定义类、鼠标事件、图片显示函数。
  • ROI区域图像操作

    千次阅读 2016-05-20 10:17:12
     如上图所示,就是ROI的一个例子,如果你对图像设置了ROI,那么,Opencv的大多数函数只在该ROI区域内运算(只处理该ROI区域),如果没设ROI的话,就会出来整幅图像。 ROI非常有用,例如我们想把图像中的人脸扣出来...
           
     ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续的程序需要单独处理这一个小区域,如图所示
    Opencv中的ROI介绍
     


            如上图所示,就是ROI的一个例子,如果你对图像设置了ROI,那么,Opencv的大多数函数只在该ROI区域内运算(只处理该ROI区域),如果没设ROI的话,就会出来整幅图像。
    ROI非常有用,例如我们想把图像中的人脸扣出来,进行人脸识别。需要注意的时候,ROI一定在图像内部,而不能超出图像的范围。


    对图像设定ROI的函数是:


    cvSetImageROI(IplImage* src,CvRect rect);
    src表示的是源图像,rect只的是ROI区域。


    如果要取消ROI区域,那么使用函数:


    cvResetImageROI(IplImage* src);
    这个函数,就把src上的ROI区域取消掉。


    下面举几个例子:


    例子1:
    从一幅大图像中,取出一小块图像并保存这一个小块图像。
    代码如下:

    IplImage *img1 = cvLoadImage("elvita.jpg", 1);


    cvSetImageROI(img1, cvRect(10, 15, 150, 250));


    IplImage *img2 = cvCreateImage(cvGetSize(img1),
                                   img1->depth,
                                   img1->nChannels);


    cvCopy(img1, img2, NULL);


    cvResetImageROI(img1);




    例子2:
    两幅不同大小的图像相加

    IplImage *img1 = cvLoadImage("elvita.jpg", 1);  
    IplImage *img2 = cvLoadImage("fifi.jpg", 1);   


    CvRect rect = cvRect(25, 25, img2->width, img2->height);


    cvSetImageROI(img1, rect);


    cvAdd(img1, img2, img1, NULL);


    cvResetImageROI(img1);




    例子3:在一个特定区域进行模板匹配 (关于模板匹配的完整代码下载)
    IplImage *src = cvLoadImage("myphoto.jpg", 1);
    IplImage *template = cvLoadImage("eye.jpg", 1);

    CvRect rect = cvRect(25, 25, 120, 120);

    //设置ROI区域
    cvSetImageROI(src, rect);

    IplImage *result = cvCreateImage(cvSize(rect.width  - tpl->width  + 1,
                                         rect.height - tpl->height + 1),
                                  IPL_DEPTH_32F, 1);


    cvMatchTemplate(src, template, result, CV_TM_SQDIFF);


    CvPoint    minlocation, maxlocation;
    double    minvalue, maxvalue;
    cvMinMaxLoc(result, &minvalue, &maxvalue, &minlocation, &maxlocation, 0);


    cvRectangle(src,
                cvPoint(minlocation.x, minlocationc.y),
                cvPoint(minlocation.x + template->width, minlocationc.y + template->height),
                CV_RGB(255, 0, 0), 1, 0, 0 );

    cvResetImageROI(src);


    在上面的例子中,先定义ROI区域,再进行模板匹配,这样会加快匹配的速度,因为,只在ROI区域进行模板匹配运算。


    例子4:ROI区域像素值的访问
    可以想把ROI区域拷贝到一幅新的图像中,然后再访问其像素值






    CvRect rect = cvRect(10, 20, 50, 60);



    IplImage* subimg;



    cvSetImageROI(img, rect);


    //ROI区域拷贝
    cvCopy(img, subimg, NULL);


    //释放ROI区域
    cvResetImageROI(img);





    或者可以通过ROI的左边信息进行访问





    CvRect rect = cvRect(10, 20, 50, 60);


    //设置ROI区域
    cvSetImageROI(img, rect);



    for (i = rect.y; i < (rect.y + rect.height); i++) {
        for (j = rect.x; j < (rect.x + rect.width); j++) {
            ((uchar*)(img->imageData + i * img->widthStep))[j*3] = 0;
            ((uchar*)(img->imageData + i * img->widthStep))[j*3+1] = 0;
            ((uchar*)(img->imageData + i * img->widthStep))[j*3+2] = 0;
        }
    }

    cvResetImageROI(img);
    展开全文
  • 眼睛ROI区域裁剪

    2019-07-09 19:09:17
    为了用深度方法训练一...本文用的是opencv的检测库shape_predictor_68_face_landmarks.dat,得到68特征点后,根据特征点来裁剪眼睛ROI区域。 代码: # _*_ coding:utf-8 _*_ from numpy import * import numpy a...
  • ROI区域选取,Matlab

    千次阅读 2020-03-19 17:15:31
    一幅图像,我们需要处理的区域可能只占整幅图像的一小部分,通过鼠标进行手动选取,展示图像,并且获得ROI图像的起始行列坐标。...%选取图像的ROI区域----------------------------------- figur...
  • OpenCV数字图像处理之ROI区域的提取

    万次阅读 多人点赞 2019-03-04 11:07:18
    OpenCV数字图像处理之ROI区域的提取 利用mask(掩模)技术提取纯色背景图像ROI区域中的人和物,并将提取出来的人或物添加在其他图像上。 1、实现原理 先通过cv.cvtColor()函数,将原RGB彩色图像转换为hsv色彩空间的...
  • 基于HALCON12,MFC6.0, 在窗口上交互绘制ROI区域功能的实现。代码还差坐标系统间的互换,仅为群内功能定制部分实现
  • 【OpenCV】ROI区域&图像混合例程by浅墨

    千次下载 热门讨论 2014-03-10 13:04:56
    利用OpenCV载入了dota2英雄幻影刺客的原画和dota2 logo,进行ROI区域定义和图像混合处理的一个非常有趣的示例程序。 博文《【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析》的配套详细注释源代码。 ...
  • 为了满足实时性的要求,在运动目标检测与跟踪领域引入感兴趣区域(Region of Interest,ROI)的概念,提出了基于矩形扩张的ROI区域标记算法,通过与传统算法比较发现,矩形张算法具有较高的效率和准确度.实现结果...
  • OpenCV 提取不规则ROI区域

    千次阅读 2019-12-16 12:33:10
    提取ROI区域 方法一: 方法二: 实际应用演示 原文出处: https://mp.weixin.qq.com/s/MiHz2zLBif_s1lksQXLBbw 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 什么是ROI ROI是英文Region Of...
  • opencv ROi区域图像叠加

    2019-06-09 15:54:19
    定义ROI区域的方法有两种 (1 )使用Rect()函数 Rect里面的四个参数分别是矩形左上角的横、纵坐标,矩形的长。宽。 (2)使用Range()函数 我们可以通过一个图像掩膜(mask),直接将插入处的像素设置为logo...
  • 由原图的ROI二值图得到原始的ROI区域 原始的ROI二值图区域为大小和原图一样大,ROI区域为1,非ROI区域为0。有的时候我们需要只是获取ROI区域,并且显示出来 1、 一种可行的办法就是:将原图与ROI图作乘法,然后就...
  • Halcon实例教程之ROI区域分割

    千次阅读 2017-04-23 20:53:31
    本文研究了采用Halcon分割与周围灰度值差别较小的ROI区域,该文中分析了四种增强ROI边界对比度的方法,对屏幕划痕分割等应用具有明显的借鉴意义。 分割图片如下图所示,分割出图像中的图案作为ROI区域。 案例分析 ...
  • 将图片内不规则的ROI区域截取下来后,将非ROI区域的像素删除. 主要函数 cvFloodFill() cvOr()(注: 与cvAnd用法雷同) 代码实现 IplImage *ipl_img = cvLoadImage("7890.jpg"); // 将ROI区域用cvLine包裹 cvLine(ipl...
  • 选择图像中的roi区域在图像处理中有重要意义,demo利用橡皮筋类crectTracker选择图像roi区域
  • opencv中ROI区域的提取

    2021-04-17 19:11:31
    首先利用dlib库识别出了人脸区域,现在要将识别出来的人脸区域进行保存,即提取ROI区域: 代码原来是利用便利的方式,写了两层循环来给新图像赋值 for ii in range(height * 2): for jj in range(width * 2): ...
  • 图像ROI区域的定义方式

    万次阅读 2015-05-05 17:37:00
    在图像算法很多应用场合,图像中处理的目标往往位置相对固定,根据先验信息定义图像的ROI区域可以大幅减小算法的复杂度,提高算法的效率和鲁棒性。根据图像中目标的形状特征不同,ROI区域的定义方式有多种方式: ...
  • ROI是英文Region Of Interest的三个首字母缩写,很多时候我们对图像的分析就是对图像特定ROI的分析与理解,对细胞与医疗图像来说,ROI提取正确才可以进行后续的分析、测量、计算密度等,而且这些ROI区域往往不是矩形...
  • 知识点 1、Mat对象在内存中包含两部分的内容:矩阵头与图像数据矩阵; Mat A = imread("1.jpg"); Mat B,C ; //部分复制:B与A指向同一块内存区域 ...2、选择图像ROI区域(感兴趣区域) //两种方法 Rect(x,...
  • 本文主要是对《OpenCV3编程入门》这本书中的5.2.1 感兴趣区域ROI这一节的ROI_AddImage()函数进行改进,使得其能通用至少13次嘻吸!顺便在改进过程中,对相应参数知识了解更细致点,因为初学所以可能并没有多高深,...
  • 图像处理之ROI区域裁剪

    千次阅读 2017-06-15 17:26:12
    图像ROI(region of intrest:感兴趣区域)的提取往往是图像处理中的第一步,而且也是非常关键的一步,ROI区域的提取能够在消除一些噪 声的同时减少后续图像处理的数据量,是非常常用的方法。 在OPENCV中可以利用...
  • 基于VS+Qt5实现的用于图片ROI区域框选,并可以对区域进行移动缩放删除保存操作。主要通过重写QLabel,代码仅供参考。 介绍链接:https://blog.csdn.net/qq_36131739/article/details/104855098
  • 怎么把下面对图片进行ROI设定的代码改成对摄像头ROI区域的设定 #include #include using namespace std; int main (int argc, char **argv) { // 加载原图像 IplImage* img = cvLoadImage("F://12.jpg"); /...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,648
精华内容 1,059
关键字:

roi区域