在openv 1.0中打开yml文件
Open yml file in opencv 1.0
我有一个yml文件,我想打开文件阅读使用现有的opencv 1.0函数。该文件包含如下内容:
%YAML:1.0
Image file: "00961010.jpg"
Contours count: 8
Contours:
-
Name: FO
Count: 41
Closed: 0
Points:
-
x: 740.7766113281250000
y: 853.0124511718750000
-
x: 745.1353149414062500
y: 875.5324096679687500
你能提供一些如何迭代这些数据的例子吗?我只需要x和y点并将它们存储在一个数组中。我已经搜索,但我没有发现类似的数据的例子,请帮助我。提前感谢!
您将需要查看cvFileStorage数据结构和函数。
下面是一个来自OpenCV的例子来帮助你开始:
#include "cxcore.h"
int main( int argc, char** argv )
{
CvFileStorage* fs = cvOpenFileStorage( "points.yml", 0, CV_STORAGE_READ );
CvStringHashNode* x_key = cvGetHashedNode( fs, "x", -1, 1 );
CvStringHashNode* y_key = cvGetHashedNode( fs, "y", -1, 1 );
CvFileNode* points = cvGetFileNodeByName( fs, 0, "points" );
if( CV_NODE_IS_SEQ(points->tag) )
{
CvSeq* seq = points->data.seq;
int i, total = seq->total;
CvSeqReader reader;
cvStartReadSeq( seq, &reader, 0 );
for( i = 0; i < total; i++ )
{
CvFileNode* pt = (CvFileNode*)reader.ptr;
int x = cvReadIntByName( fs, pt, "x", 0 /* default value */ );
int y = cvReadIntByName( fs, pt, "y", 0 /* default value */ );
CV_NEXT_SEQ_ELEM( seq->elem_size, reader );
printf("point%d is (x = %d, y = %d)n", i, x, y);
}
}
cvReleaseFileStorage( &fs );
return 0;
}
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 从YML文件OPENCV C 初始化摄像机参数
- 我需要帮助为C++设置.gitlab-ci.yml文件
- 如何在c++中创建这个yml文件(使用opencv)
- 解析第二个节点上嵌套的yml文件
- 在openv 1.0中打开yml文件
- 如何在opencv中访问yml文件的元素?
- 在Opencv - Optimization中加载YML文件
- 如何将yml文件连接到一个文件中