opencv读写文件常用函数详解

前面讲了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操作完成后才能关闭文件存储器。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241777.html

(0)
上一篇 2022年4月7日
下一篇 2022年4月7日

相关推荐

发表回复

登录后才能评论