CvMat,Mat和IplImage之间的转化和拷贝

1、CvMat之间的复制

//注意:深拷贝 - 单独分配空间,两者相互独立  
CvMat* a;  
CvMat* b = cvCloneMat(a);   //copy a to b  

2、Mat之间的复制

复制代码
//注意:浅拷贝 -  不复制数据只创建矩阵头,数据共享(更改a,b,c的任意一个都会对另外2个产生同样的作用)
Mat a;
Mat b = a; //a "copy" to b
Mat c(a); //a "copy" to c//注意:深拷贝
Mat a;
Mat b = a.clone(); //a copy to b
Mat c;
a.copyTo(c); //a copy to c
复制代码

3、CvMat转Mat

复制代码
//使用Mat的构造函数:Mat::Mat(const CvMat* m, bool copyData=false);    默认情况下copyData为false
CvMat* a;
//注意:以下三种效果一致,均为浅拷贝
Mat b(a);    //a "copy" to b
Mat b(a, false);    //a "copy" to b
Mat b = a;    //a "copy" to b//注意:当将参数copyData设为true后,则为深拷贝(复制整个图像数据)
Mat b = Mat(a, true); //a copy to b
复制代码

4、Mat转CvMat

复制代码
//注意:浅拷贝
Mat a;
CvMat b = a; //a "copy" to b//注意:深拷贝
Mat a;
CvMat *b;
CvMat temp = a; //转化为CvMat类型,而不是复制数据
cvCopy(&temp, b); //真正复制数据 cvCopy使用前要先开辟内存空间
复制代码

==========IplImage与上述二者间的转化和拷贝===========

1、IplImage之间的复制
这个不赘述了,就是cvCopy与cvCloneImage使用区别,贴张网上的图:

2、IplImage转Mat

复制代码
//使用Mat的构造函数:Mat::Mat(const IplImage* img, bool copyData=false);    默认情况下copyData为false
IplImage* srcImg = cvLoadImage("Lena.jpg");
//注意:以下三种效果一致,均为浅拷贝
Mat M(srcImg);
Mat M(srcImg, false);
Mat M = srcImg;//注意:当将参数copyData设为true后,则为深拷贝(复制整个图像数据)
Mat M(srcImg, true);
复制代码

3、Mat转IplImage

复制代码
//注意:浅拷贝 - 同样只是创建图像头,而没有复制数据
Mat M;
IplImage img = M;
IplImage img = IplImage(M);
//深拷贝
cv::Mat img2;
IplImage imgTmp = img2;
IplImage *input = cvCloneImage(&imgTmp);
复制代码

4、IplImage转CvMat

复制代码
//法一:cvGetMat函数
IplImage* img;
CvMat temp;
CvMat* mat = cvGetMat(img, &temp);    //深拷贝
//法二:cvConvert函数
CvMat *mat = cvCreateMat(img->height, img->width, CV_64FC3);    //注意height和width的顺序
cvConvert(img, mat);    //深拷贝
复制代码

5、CvMat转IplImage

复制代码
//法一:cvGetImage函数
CvMat M;
IplImage* img = cvCreateImageHeader(M.size(), M.depth(), M.channels());
cvGetImage(&M, img);    //深拷贝:函数返回img
//也可写成
CvMat M;
IplImage* img = cvGetImage(&M, cvCreateImageHeader(M.size(), M.depth(), M.channels()));
//法二:cvConvert函数
CvMat M;
IplImage* img = cvCreateImage(M.size(), M.depth(), M.channels());
cvConvert(&M, img);    //深拷贝
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HALCON示例程序particle.hdev测量小圆部分

HALCON示例程序particle.hdev测量小圆部分 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () dev_close_window () dev_open_window (0, 0, 512, 512, ‘black’, WindowID) set_display_font (WindowID, 14, ‘mono’, ‘true’, ‘false’…

Java List 分页

//分页&#xff0c;根据country或者site分br/>Overridepublic List<Integer> getSitesPage(Integer parentLevel, Integer currentPage) {List<Integer> subFrames getSites(parentLevel) ;int currentNum ( currentPage - 1 ) * CardViewUtil.PREPAGE_NUM ;D…

跟多导出数据库的方法

链接&#xff1a;http://www.2cto.com/database/201207/139330.html转载于:https://www.cnblogs.com/nycj/p/5661151.html

rtp协议详解/rtcp协议详解

、简介 目前&#xff0c;在IP网络中实现实时语音、视频通信和应用已经成为网络应用的一个主流技术和发展方向&#xff0c;本文详细介绍IP协议族中用于实时语音、视频数据传输的标准协议RTP&#xff08; Real-time Transport Protocol&#xff09;和RTCP&#xff08;RTP Control…

MVC开发中的常见错误-04-“System.NullReferenceException”类型的异常在 BBFJ.OA.WebApp.dll 中发生,但未在用户代码中进行处理...

未将对象引用设置到对象实例,又名空指针异常,伴随程序员开发的一生. 查看详细信息得知: SetUserRoleInfo() 首先想到的是 IBLL.IRoleInfoService RoleInfoService { set; get; }应该是config文件中反射出现了问题 <?xml version"1.0" encoding"utf-8"…

HALCON示例程序pcb_inspection.hdev检测pcb印刷缺陷

HALCON示例程序pcb_inspection.hdev检测pcb印刷缺陷 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 read_image (Image, ‘pcb’) dev_close_window () get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowHa…

profibus GSD文件详解

profibus GSD文件详解 2015-6-19 通过PROFIBUS DP用功能块在主、从站之间实现双向数据传送&#xff1a;在主站PLC可以通过调用SFC14“DPRD_DAT”和SFC15“DPWR_DAT”来完成和从站的数据交换&#xff0c;而对于从站来说可以调用FC1“DP_SEND”和FC2“DP_RECV”完成数据的交换。 …

继承与派生

# 1、什么是继承&#xff1f;# 继承一种新建类的的方式&#xff0c;在python中支持一个儿子继承多个爹# 新建的类称为子类或者派生类&#xff0c;# 父类又可以称为基类或者超类## 子类会”遗传“父类的属性## 2、为什么要用继承# 减少代码冗余## 3、怎么用…

opencv问题解析

错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ 解决方法如下&#xff1a;项目\属性\配置属性\清单工具\输入和输出\嵌入清单&#xff1a;原来是“是”&#xff0c;改成“否”。 LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d249…

RTSP协议介绍

1. 实 时流协议RTSP RTSP[3]协 议以客户服务器方式工作&#xff0c;它是一个多媒体播放控制协议&#xff0c;用来使用户在播放从因特网下载的实时数据时能够进行控制&#xff0c;如&#xff1a;暂停/继 续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。 1.1. …

mysql中出现没有权限访问或者查看全部数据库的问题---用客户端第一次打开的时候...

在my.cnf中mysqld目录下的socket/var/lib/mysql/mysql.sock一行下面添加skip_grant_tables---------------报错退出然后重新启动server mysqld restart 登录进去转载于:https://www.cnblogs.com/yecao8888/p/5661250.html

HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 Names : [] dev_close_window () for i : 1 to 10 by 1 Names : [Names,‘dff/focus_’ (i$’.2’)…

五轴加工的RTCP技术

五轴加工的RTCP技术【原创整理】 十数年前&#xff0c;一汽为模具加工招标五轴机床&#xff0c;据说当时去了不少国际大牌厂商&#xff0c;招标现场有外商提出他们的产品好&#xff0c;有RTCP功能&#xff0c;在坐的国内厂商和业内专家一时语塞&#xff0c;几乎无人知晓…

优秀项目解析:区块链上的房地产交易

区块链前哨导语&#xff1a;买房租房中&#xff0c;需要了解多少知识从而规避欺诈风险&#xff1f;如果区块链这一新兴技术与房地产这个古老的概念相结合&#xff0c;会碰撞出怎样的火花&#xff1f;房地产物业的所有权验证与转让将呈现出怎样的面貌&#xff1f;美国有家科技初…

HALCON示例程序rim.hdev轮圈孔检测提取字符

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序rim.hdev轮圈孔检测提取字符 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () dev_close_window () dev_open_window (0, 0, 768, 576, ‘black’, WindowID) set_display_font …

Jquery 全选、反选问题解析

最近工作中&#xff0c;需要使用Jquery实现复选框的全选和反选&#xff0c;本人虽然不是专职撸前端的&#xff0c;但这个小问题感觉也没什么难度&#xff0c;下面直接上代码&#xff1a; <div id"list"> <ul class"mui-table-view textOverflow"…

分层

1. UI&#xff08;用户层&#xff09;&#xff0c;BLL&#xff08;业务逻辑层&#xff09;&#xff0c;DAL&#xff08;数据访问层&#xff09;. UI是用来显示的&#xff0c;比如说一些显示的样式还有界面设计。 BLL是用来处理业务逻辑的问题。 DAL是和数据库打交道的。 2.数…

德国汽车厂发生机器人杀人事件 人机协作是大势所趋

OFweek机器人网讯&#xff1a;《金融时报》报道称&#xff0c;德国大众汽车制造厂中一个机器人杀死了一名人类工作人员。当时这名21岁的工人正在安装和调制机器人&#xff0c;后者突然“出手”击中工人的胸部&#xff0c;并将其碾压在金属板上。这名工人当场死亡。 调查人员正对…

H264 视频文件 帧格式 传输封装等 杂碎

H264 视频文件 帧格式 传输封装等 杂碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984协议实现H264视频流媒体nalu单元 包起始 0x 00 00 00 01H&#xff0e;264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy…

Tomcat 调优及 JVM 参数优化

Tomcat 的缺省配置是不能稳定长期运行的&#xff0c;也就是不适合生产环境&#xff0c;它会死机&#xff0c;让你不断重新启动&#xff0c;甚至在午夜时分唤醒你。对于操作系统优化来说&#xff0c;是尽可能的增大可使用的内存容量、提高CPU 的频率&#xff0c;保证文件系统的读…