注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王小二的博客

勤俭以修身,淡泊以明志

 
 
 

日志

 
 

OpenCV的Mat IplImage CvMat  

2013-04-22 11:47:57|  分类: 专业相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

[转自]:http://www.cnblogs.com/jeffery-zou/archive/2012/03/28/2421462.html

在C++接口中许多都是适用Mat object,这些Objects可以随便向IplImage和CvMat通过简单的赋值进行转换,例如:

Mat  I;

IplImage  pI = I;

CvMat  mI  = I;

如果想进行指针转换会稍微复杂一点,需要调用IplImage和CvMat运算符得到指针,为了得到指针需要使用&符号:

Mat  I;

IplImage*  pI = &I.operator IplImage();

CvMat*  mI = &I.operator CvMat();

 

C接口最大的缺点是需要程序员进行内存管理,当不需要使用的Objects时需要释放内存,在程序结束前确保这样做了,否则到导致内存泄漏。为了解决这个问题,OpenCV引入了智能指针,当object不再使用时就会自动释放。

为了使用智能指针,需要使用Ptr进行声明:

Ptr<IplImage>  piI = &I.operator IplImage();

C数据结构转换为Mat Object,使用Mat的构造函数:

Mat  K(piI),  L;

L = Mat(pI);


  评论这张
 
阅读(446)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018