zoukankan      html  css  js  c++  java
  • 【OpenCV学习】yml的读取

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    #include <stdio.h>
    #include "cxcore.h"
    int main( int argc, char** argv )
    {
        CvFileStorage* fs = cvOpenFileStorage( "points.yaml", 0, CV_STORAGE_READ );
            /*所有已读存储在文件元素的关键字被存储在hash表中,
        它使用哈希指针“x”和“y"加速对点的解析。这样可以加速查找操作 */
        CvStringHashNode* x_key = cvGetHashedKey( fs, "x", -1, 1 );
        CvStringHashNode* y_key = cvGetHashedKey( 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;
    #if 1 /* 快变量 */
                CvFileNode* xnode = cvGetFileNode( fs, pt, x_key, 0 );
                CvFileNode* ynode = cvGetFileNode( fs, pt, y_key, 0 );
                assert( xnode && CV_NODE_IS_INT(xnode->tag) &&
                        ynode && CV_NODE_IS_INT(ynode->tag));
                int x = xnode->data.i; // or x = cvReadInt( xnode, 0 );
                int y = ynode->data.i; // or y = cvReadInt( ynode, 0 );
    #elif 1 /* 慢变量:不使用x值与y值  */
                CvFileNode* xnode = cvGetFileNodeByName( fs, pt, "x" );
                CvFileNode* ynode = cvGetFileNodeByName( fs, pt, "y" );
                assert( xnode && CV_NODE_IS_INT(xnode->tag) &&
                        ynode && CV_NODE_IS_INT(ynode->tag));
                int x = xnode->data.i; // or x = cvReadInt( xnode, 0 );
                int y = ynode->data.i; // or y = cvReadInt( ynode, 0 );
    #else /* 最慢的可以轻松使用的变量  */
                int x = cvReadIntByName( fs, pt, "x", 0 /* default value */ );
                int y = cvReadIntByName( fs, pt, "y", 0 /* default value */ );
    #endif
                CV_NEXT_SEQ_ELEM( seq->elem_size, reader );
                printf("%d: (%d, %d)/n", i, x, y );
            }
        }
        cvReleaseFileStorage( &fs );
        return 0;
    }

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/


                   作者:gnuhpc
                   出处:http://www.cnblogs.com/gnuhpc/
                   除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


    分享到:

  • 相关阅读:
    关于bind named.conf.options
    MASM 16位汇编程序几种典型的格式
    About GCC
    WebForms UnobtrusiveValidationMode 需要“jQuery”ScriptResourceMapping。
    Linux系统下的shutdown命令用于安全的关闭/重启计算机
    TreeView.ImageSet 属性
    python seaborn
    python neo4j
    Impala与Hive的比较
    pandas.resample()
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2715890.html
Copyright © 2011-2022 走看看