NIUBI
开发教程

opencv 读写文件常用函数详解

1年前/ 15/ / WP爱好者/ 已收录/
导语: 前面讲了 opencv 操作文件的一些函数,详见 OpenCV 文件存储结构函数 CvFileStorage 与文件存储器节点函数 CvFileNode 详解,然而文件操作不仅仅只是文件的存储,还有读写操作,opencv 封装了完整的文件读写操作函数,我们可以直接使用。在读写文件之前,我们需要一些必要的函数来辅助我们实现需求。比如 CvAttrList 函数得到属性列表,OpenFileStorage 函数打开文件存储器进行读写操作等。

前面讲了 opencv 操作文件的一些函数,详见 OpenCV 文件存储结构函数 CvFileStorage 与文件存储器节点函数 CvFileNode 详解,然而文件操作不仅仅只是文件的存储,还有读写操作,opencv 封装了完整的文件读写操作函数,我们可以直接使用。在读写文件之前,我们需要一些必要的函数来辅助我们实现需求。比如 CvAttrList 函数得到属性列表,OpenFileStorage 函数打开文件存储器进行读写操作等。

CvAttrList

属性列表

typedef struct CvAttrList {     const char** attr; /* NULL-指向数组对(attribute_name,attribute_value) 的空指针 */     struct CvAttrList* next; /* 指向下一个属性块的指针 */ } CvAttrList;  /* 初始化构造函数 CvAttrList */ inline CvAttrList cvAttrList( const char** attr=NULL, CvAttrList* next=NULL );  /* 返回值为属性值,找不到适合的属性则返回值为 0(NULL)*/ const char* cvAttrValue( const CvAttrList* attr, const char* attr_name );

在当前版本的属性列表用来传递额外的参数,在使用 cvWrite 写入自定义数据对象时。除了对象类型说明(type_id 属性)以外,它不支持 XML 在标签内的属性(注:例如<A name=”test”></A>不支持)。

OpenFileStorage

打开文件存储器读/写数据。

CvFileStorage* cvOpenFileStorage( const char* filename, CvMemStorage* memstorage, int flags );
filename
内存中的相关文件的文件名。
memstorage
内存中通常存储临时数据和动态结构,例如 CvSeq 和 CvGraph。如果 memstorage 为空,将建立和使用一个暂存器。
flags
读/写选择器。
CV_STORAGE_READ – 内存处于读状态。
CV_STORAGE_WRITE – 内存处于写状态。

函数 cvOpenFileStorage 打开文件存储器读写数据,之后建立文件或继续使用现有的文件 。文件扩展名决定读文件的类型 : .xml 是 XML 的扩展名, .yml 或 .yaml 是 YAML 的扩展名。该函数的返回指针指向 CvFileStorage 结构。

ReleaseFileStorage

释放文件存储单元

void  cvReleaseFileStorage( CvFileStorage** fs );
fs
双指针指向被关闭的文件存储器。

函数 cvReleaseFileStorage 关闭一个相关的文件存储器并释放所有的临时内存。只有在内存的 I/O 操作完成后才能关闭文件存储器。

点点赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!
admin给Admin打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付
收藏 0 海报

版权归属:本文为原创文章,版权归 所有

本文链接:( 欢迎分享本文,转载请保留出处 )

免责声明:如发现本站有涉嫌抄袭侵权/违法违规的内容,请邮件/留言反馈,一经查实本站将立刻删除!

<< 上一篇

2019-10-10

下一篇 >>

2019-11-04

全部评论( 0 条 )
扫一扫二维码分享