OpenCV拷贝与ROI
OpenCV的Mat变量之间拷贝分浅拷贝和深拷贝(由于3.0以后对IplImage变量不再使用,所以这里仅考虑Mat变量)
一. 浅拷贝
Mat a;
Mat b = a; //a "copy" to b
Mat c(a); //a "copy" to c
注意:浅拷贝不复制数据只创建矩阵头,实现数据共享,更改a, b, c三个变量中的任意一个都会对另外2个产生同样的作用。
二. 深拷贝
Mat a, b, c, d;
a.copyTo(b); // a copy to b
c = a.clone(); // a copy to c
a.convertTo(d, a.type()); // a copy to d
注意:深拷贝是完全拷贝,拷贝完成后得到一个独立的变更,数据自治,更改a, b, c, d四个变量中的任意一个都不会影响其它变量。
三. ROI
1. 浅拷贝
Mat B = A(Range::all(), Range(1, 3));
Mat B = A(Rect(0,0,100,100));
A和B共享内存,B只获得了A中ROI区域的位置信息,如下图(懒得画图了,从网上找了张图,变量不对应,请领会精神!)
2. 深拷贝
opencv中给出的例子是
Rect r(1, 1, 10, 20); // 指定src 的 ROI子图像区域Mat dstroi =dst(Rect(0,10,r.width,r.height)); // 拿到 dst指定区域子图像的引用src(r).convertTo(dstroi, dstroi.type(), 1,0); // ROI子图像之间的复制
此时,无需指定图像的ROI,计算与方便,清晰
另外,还可以用mask来拷贝,这里只给出一种方法,还会有不同的方法
main()
{Mat matSrc = imread("e:/template/lena.jpg");Mat matDst;Mat matMask(matSrc.size(),CV_8UC1,Scalar(0));Rect rect(0, 0, 100, 100);//绘制maskrectangle(matMask,rect,Scalar(255),-1);//带有mask的copytomatSrc.copyTo(matDst,matMask);waitKey();return 0;}
OpenCV拷贝与ROI相关推荐
- Opencv中的ROI介绍
Opencv中的ROI介绍 (2013-03-27 13:36:26) 转载▼ 分类: 模式识别 ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续 ...
- opencv 手选roi区域_【OpenCV】选择ROI区域
问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果. 解决思路: 1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置 ...
- OpenCV+python:ROI与泛洪填充
1,ROI 感兴趣区(Region of Interest,ROI) 是图像的一部分,它通过在图像上选择或使用诸如设定阈值(thresholding) 或者从其他文件(如矢量> 转换获得等方法生 ...
- OpenCV之图像ROI与ROI操作
python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...
- opencv中什么事ROI。ROI有什么作用
ROI(region of interest),也就是感兴趣区域,如果你设置了图像了ROI,那么在使用OpenCV的函数的时候,会只对ROI区域操作,其他区域忽略.举个例子: 原图: 现在要将这幅图的 ...
- OpenCV 提取不规则ROI区域
目录 什么是ROI 提取ROI区域 方法一: 方法二: 实际应用演示 原文出处: https://mp.weixin.qq.com/s/MiHz2zLBif_s1lksQXLBbw 微信公众号:Ope ...
- 【opencv学习】ROI区域和图像填充
一:ROI ROI就是region of interest,感兴趣的区域,有时候需要去看看某个特定的区域 #!/usr/bin/python # -*- coding: <encoding na ...
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
[OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...
- 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合
1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...
最新文章
- spring jpa @Query中使用in
- 2020年10个诱人的技术里程碑
- IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
- 数据结构和算法设计专题之---判断单链表中是否有环,环的长度,环的入口节点...
- capitalism 2 3892303_2021年2月5日财神方位查询,今天哪个方位财运好
- 如何用Markdown轻松排版知乎专栏文章?
- 下滑加载更多js_vue.js怎么实现滑动到底部加载更多数据效果?
- POJ1887 DP水题儿
- Introduction to the Linux Kernel
- [转载] python numpy矩阵运算加速器 NumExpr
- TensorFlow实现去噪自编码器(Denoising Autoencoder)
- java容量_java中常用集合类的容量
- 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
- C/C++[算法入门]续
- 在ubuntu下安装Dynamips
- 装系统时出现获取硬盘分区失败 可能缺少硬盘驱动怎么办
- ASDL、以太网、光钎的关系与区别
- 这位日本网友和谷歌街景的故事,感动了58万人
- 工程地质计算机应用百度云,工程地质计算机应用
- 编程参考- 重名符号的链接问题