关于opencv中cv::Mat设置roi
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的更多相关文章
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
原文:OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解 Title : cv::Mat depth/dims/channels ...
- 【opencv】cv::Mat转std::vector<cv::Point2d> (注意两容器中数据类型的一致性)
获取cv::Mat大小: mymat.size() 获取cv::Mat指定位置的值:需指定数据类型,且注意数据类型应与存入时的数据类型一致,否则会导致不抛出异常的数据错误 mymat.at<,i ...
- 如何将OpenCV中的Mat类绑定为OpenGL中的纹理
https://blog.csdn.net/TTTTzTTTT/article/details/53456324 如果要调用外接的USB摄像头获取图像通常使用OpenCV来调用,如何调用摄像头请参考本 ...
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解 (转)
cv::Matdepth/dims/channels/step/data/elemSizeThe class Mat represents an n-dimensional dense numeric ...
- QT中使用 slot 传递 opencv 中得Mat对象以及 使用多线程集成开源代码。
关于 slot传递 Mat 对象 以前一直是使用 Qtimer 定时器,设定超时后读取 dialog 对象的 Mat成员实现在 UI 里显示图像,发现这样对以后集成其他面向过程的代码增加了复杂度. 所 ...
- 网络流中的图像转化为OpenCV中的Mat类型
1,从网络中读取到的图像流,不支持查找,不能直接转化为Mat类型 2,例子如下: string Url = "http://192.168.0.110/cgi-bin/camera?reso ...
- opencv中的Mat类型
Mat类型主要是跟matlab中的数据类型一样.故用起来很方便. Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage ...
- opencv 中的mat类(非原创)
Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,Mat这个类有两部分数据.一个是matrix header(矩阵头),这部分的大小是固定的,包含矩阵的大小,存储 ...
- 【记录一个问题】opencv中 cv::dft()与cv::ocl_dft()计算的结果相差较大
以一个跟踪算法来测试: 使用cv::dft(), 矩阵未按照2次幂对齐,最终跟踪平均准确率 84.3% 使用cv::dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 8 ...
随机推荐
- python 代码中的类和对象
- openstack安装dashboard后访问horizon出错 500 or 504
访问controller/horizon出错500:internal server error 访问controller/horizon出错504:internal server error gat ...
- 设备 VMnet0 上的网络桥接当前未在运行。
早上,我打开我的虚拟机,却发现一个问题, 桥接网络怎么都连接不上. 报的是如下的错误 ------------------------------ 设备 VMnet0 上的网络桥接当前未在运行.该虚拟 ...
- 【JZOJ4841】【NOIP2016提高A组集训第4场11.1】平衡的子集
题目描述 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 数据范围 40%的数据满足: ...
- vim删除行
0,vim filename 1,显示行号 :set number 2,跳转到第1000行 1000G (跳转到文件末尾:“G”) 3,删除1-1000行 :1,.d 4,删除所有行 先跳转到文件最后 ...
- 基于PyTorch的Seq2Seq翻译模型详细注释介绍(一)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qysh123/article/detai ...
- 冒泡排序&&选择排序 以及时间效率对比
package com.test4; import java.util.*; //Calendar 显示时间 /** * @author qingfeng * 功能:冒泡排序 */ public cl ...
- Datagrid添加右键菜单 标签: 三层EasyUI 2015-08-14 19:57 1029人阅读 评论(22)
最近的一个项目前台使用的EasyUI,每个界面都有DataGrid控件,按照我们的想法,应该做出来的效果是单击选中,双击可编辑,当然右键也应该出现这些菜单按钮,想的挺好,那么该如何实现呢?一开始不知道 ...
- mysql数据库之工作流程
MySQL架构总共四层,在上图中以虚线作为划分. 首先,最上层的服务并不是MySQL独有的,大多数给予网络的客户端/服务器的工具或者服务都有类似的架构.比如:连接处理.授权认证.安全等. 第二层的架构 ...
- Pytorch使用tensorboardX网络结构可视化。超详细!!!
https://www.jianshu.com/p/46eb3004beca 1 引言 我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,为了使用tensorbo ...