opencv中设置roi实验:

     cv::Mat SrcImg;
SrcImg = cv::imread("../resource/cpw3.png");
cv::imshow("原图像",SrcImg); // 第一次提取部分ROI
cv::Rect SrcImgROI = cv::Rect( SrcImg.cols/, , SrcImg.cols/, SrcImg.rows/);
cv::Mat SrcROIImg = SrcImg(SrcImgROI);
cv::imshow("ROI",SrcROIImg); // 第一次改变ROI中的值,原图像也改变,表示公用一个内存
SrcROIImg.setTo(cv::Scalar(,,));
cv::imshow("原图像-2",SrcImg); cv::Size wholeSize;
cv::Point ofs;
// 第一次获取ROI相对于原图像的偏移以及尺寸,wholeSize为原图像尺寸,ofs为该roi在原图像的偏移
SrcROIImg.locateROI(wholeSize,ofs);
printf("ROI mat: wholeSize:(%d,%d),ofs:(%d,%d)\n",wholeSize.width,wholeSize.height,ofs.x,ofs.y); // 调整ROI大小尺寸
SrcROIImg.adjustROI(, -SrcImg.rows/, -SrcImg.cols/, );
cv::imshow("ROI-2",SrcROIImg); // 第二次改变调整后ROI中的值,原图像也改变,表示公用一个内存
SrcROIImg.setTo(cv::Scalar(,,));
cv::imshow("原图像-3",SrcImg); // 第二次获取调整后的ROI相对于原图像的偏移以及尺寸
SrcROIImg.locateROI(wholeSize,ofs);
printf("After Adjust ROI mat: wholeSize:(%d,%d),ofs:(%d,%d)\n",wholeSize.width,wholeSize.height,ofs.x,ofs.y); // 第三次 获取原图像ROI部分ROI
SrcImg = SrcImg(SrcImgROI);
cv::imshow("ROI-3",SrcImg);

1.原图像为:

2. 第一次提取的ROI图像为:

3.第一次改变ROI中的值,原图像也改变,表示公用一个内存

4.第一次获取ROI相对于原图像的偏移以及尺寸:

5.调整ROI大小尺寸后图像:

6.第二次改变调整后ROI中的值,原图像也改变,表示公用一个内存:

7.第二次获取调整后的ROI相对于原图像的偏移以及尺寸:

8.第三次 获取原图像ROI部分ROI

关于opencv中cv::Mat设置roi的更多相关文章

  1. OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解

    原文:OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解 Title : cv::Mat depth/dims/channels ...

  2. 【opencv】cv::Mat转std::vector<cv::Point2d> (注意两容器中数据类型的一致性)

    获取cv::Mat大小: mymat.size() 获取cv::Mat指定位置的值:需指定数据类型,且注意数据类型应与存入时的数据类型一致,否则会导致不抛出异常的数据错误 mymat.at<,i ...

  3. 如何将OpenCV中的Mat类绑定为OpenGL中的纹理

    https://blog.csdn.net/TTTTzTTTT/article/details/53456324 如果要调用外接的USB摄像头获取图像通常使用OpenCV来调用,如何调用摄像头请参考本 ...

  4. OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解 (转)

    cv::Matdepth/dims/channels/step/data/elemSizeThe class Mat represents an n-dimensional dense numeric ...

  5. QT中使用 slot 传递 opencv 中得Mat对象以及 使用多线程集成开源代码。

    关于 slot传递 Mat 对象 以前一直是使用 Qtimer 定时器,设定超时后读取 dialog 对象的 Mat成员实现在 UI 里显示图像,发现这样对以后集成其他面向过程的代码增加了复杂度. 所 ...

  6. 网络流中的图像转化为OpenCV中的Mat类型

    1,从网络中读取到的图像流,不支持查找,不能直接转化为Mat类型 2,例子如下: string Url = "http://192.168.0.110/cgi-bin/camera?reso ...

  7. opencv中的Mat类型

    Mat类型主要是跟matlab中的数据类型一样.故用起来很方便. Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage ...

  8. opencv 中的mat类(非原创)

    Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,Mat这个类有两部分数据.一个是matrix header(矩阵头),这部分的大小是固定的,包含矩阵的大小,存储 ...

  9. 【记录一个问题】opencv中 cv::dft()与cv::ocl_dft()计算的结果相差较大

    以一个跟踪算法来测试: 使用cv::dft(), 矩阵未按照2次幂对齐,最终跟踪平均准确率 84.3% 使用cv::dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 8 ...

随机推荐

  1. innerHTML属性的内存和性能问题

    使用innerHTML替换子节点可能会导致浏览器的内存占用问题,尤其是在IE中,问题更加明显.在删除带有时间处理程序或引用了其他js对象子树是,就有可能导致内存占用问题.假设某个元素有一个事件处理程序 ...

  2. 最优化WPF 3D性能(基于“Tier-2”硬件)

    原文:最优化WPF 3D性能(基于"Tier-2"硬件) 原文地址:Maximizing WPF 3D Performance on Tier-2 Hardware 开发人员在应用 ...

  3. 通过反射拿到构造方法 Day25

    package com.sxt.constructor; /* * 反射 * Class类拿到构造方法 */ import java.lang.reflect.Constructor; public ...

  4. Gym - 101480K_K - Kernel Knights (DFS)

    题意:有两队骑士各n人,每位骑士会挑战对方队伍的某一个位骑士. (可能相同) 要求找以一个区间s: 集合S中的骑士不会互相挑战. 每个集合外的骑士必定会被集合S内的某个骑士挑战. 题解:讲真被题目绕懵 ...

  5. 转载:ubuntu 下的dpkg 的用法

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...

  6. 深度解读Helm 3: 犹抱琵琶半遮面

    自去年年初开始放风Helm v3将要开始开发,到去年年底KubeConn 上海被一堆人追问到底啥时候发版本.今年五月份,Helm v3 终于发布了第一个alpha版本,让我们来一窥新版本的Helm 到 ...

  7. @noi.ac - 506@ 强连通分量

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 有一天你学了一个叫能求出有向图中所有的强连通分量的算法,你决定将 ...

  8. logback 打印mybatis sql mybatis 日志打印sql语句和返回结果

    logback 打印sql语句: 在logback日志文件中开启debug模式 <logger name="com.ibatis" level="DEBUG&quo ...

  9. java el表达式报空指针异常(nullpointexception)

    最近在使用el表达式的时候,用到了int型变量,因为,很多时候,变量不会被赋初值,后面考虑了下,应该将声明由int 改为integer,改了之后就一直报空指针异常,后面仔细查看,我的getter和se ...

  10. 如何学习Python的一些总结

    https://mp.weixin.qq.com/s/w0NoDiYfvtTy8N3BVoIVpw 为什么选择Python 经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活, ...