2#include3#include45#pragmacomment(lib,"opencv_calib3d231d.lib")6#pragmacomment(lib,"opencv_contrib231d.lib")7#pragmacomment(lib,"opencv_core231d.lib")8#pragmacomment(lib,"opencv_features2d231d.l" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

《學習OpenCV》練習題第三章第八題b

系統 1786 0
      
          1
      
       #include <highgui.h>


      
          2
      
       #include <cv.h>


      
          3
      
       #include <stdio.h>


      
          4
      
      
          5
      
      
        #pragma
      
       comment (lib,"opencv_calib3d231d.lib")


      
          6
      
      
        #pragma
      
       comment (lib,"opencv_contrib231d.lib")


      
          7
      
      
        #pragma
      
       comment (lib,"opencv_core231d.lib")


      
          8
      
      
        #pragma
      
       comment (lib,"opencv_features2d231d.lib")


      
          9
      
      
        #pragma
      
       comment (lib,"opencv_flann231d.lib")


      
         10
      
      
        #pragma
      
       comment (lib,"opencv_gpu231d.lib")


      
         11
      
      
        #pragma
      
       comment (lib,"opencv_haartraining_engined.lib")


      
         12
      
      
        #pragma
      
       comment (lib,"opencv_highgui231d.lib")


      
         13
      
      
        #pragma
      
       comment (lib,"opencv_imgproc231d.lib")


      
         14
      
      
        #pragma
      
       comment (lib,"opencv_legacy231d.lib")


      
         15
      
      
        #pragma
      
       comment (lib,"opencv_ml231d.lib")


      
         16
      
      
        #pragma
      
       comment (lib,"opencv_objdetect231d.lib")


      
         17
      
      
        #pragma
      
       comment (lib,"opencv_ts231d.lib")


      
         18
      
      
        #pragma
      
       comment (lib,"opencv_video231d.lib")


      
         19
      
      
         20
      
      
        /*
      
      
         21
      
      
         *《學習OpenCV》第三章第八題b


      
      
         22
      
      
         * 完成時間:19:46 4/4 星期四 2013


      
      
         23
      
      
        */
      
      
         24
      
      
         25
      
      
        #define
      
       ARRAY_LENGTH 10    
      
        //
      
      
         數組長度
      
      
         26
      
      
         27
      
       typedef 
      
        struct
      
      
         my_struct


      
      
         28
      
      
        {


      
      
         29
      
      
        int
      
      
         i;


      
      
         30
      
      
            CvPoint point;


      
      
         31
      
      
            CvRect rect;


      
      
         32
      
      
        } MyStruct;


      
      
         33
      
      
         34
      
      
        void
      
       write_my_struct(CvFileStorage * fs, 
      
        const
      
      
        char
      
      * name, my_struct*
      
          ms)


      
      
         35
      
      
        {


      
      
         36
      
      
        //
      
      
        開始寫數據
      
      
         37
      
           cvStartWriteStruct(fs, name, 
      
        6
      
      
        );


      
      
         38
      
      
         39
      
      
        //
      
      
        寫入一個 整數
      
      
         40
      
           cvStartWriteStruct(fs,
      
        "
      
      
        integer
      
      
        "
      
      
        ,CV_NODE_SEQ);


      
      
         41
      
           cvWriteInt(fs,NULL,ms->
      
        i);


      
      
         42
      
      
            cvEndWriteStruct(fs);


      
      
         43
      
      
         44
      
      
        //
      
      
        寫入cvpoint結構
      
      
         45
      
           cvStartWriteStruct(fs,
      
        "
      
      
        CvPoint
      
      
        "
      
      
        ,CV_NODE_SEQ);


      
      
         46
      
           cvWriteInt(fs,NULL,ms->
      
        point.x);


      
      
         47
      
           cvWriteInt(fs,NULL,ms->
      
        point.y);


      
      
         48
      
      
            cvEndWriteStruct(fs);


      
      
         49
      
      
         50
      
      
        //
      
      
        寫入rect結構體
      
      
         51
      
           cvStartWriteStruct(fs,
      
        "
      
      
        CvRect
      
      
        "
      
      
        ,CV_NODE_SEQ);


      
      
         52
      
           cvWriteInt(fs,NULL,ms->
      
        rect.x);


      
      
         53
      
           cvWriteInt(fs,NULL,ms->
      
        rect.y);


      
      
         54
      
           cvWriteInt(fs,NULL,ms->
      
        rect.height);


      
      
         55
      
           cvWriteInt(fs,NULL,ms->
      
        rect.width);


      
      
         56
      
      
            cvEndWriteStruct(fs);


      
      
         57
      
      
         58
      
      
        //
      
      
        結束寫數據
      
      
         59
      
      
            cvEndWriteStruct(fs);


      
      
         60
      
      
        }


      
      
         61
      
      
         62
      
      
        void
      
       read_my_struct(CvFileStorage* fs, CvFileNode* ms_node, my_struct*
      
         ms)


      
      
         63
      
      
        {


      
      
         64
      
      
        //
      
      
         讀第一個整數


      
      
         65
      
      
        //
      
      
         注意:這里應使用node->data.i的value來讀取Integer
      
      
         66
      
      
        int
      
       i = cvGetFileNodeByName(fs, ms_node, 
      
        "
      
      
        integer
      
      
        "
      
      )->
      
        data.i;


      
      
         67
      
           ms->i =
      
         i;


      
      
         68
      
      
         69
      
      
        //
      
      
         讀CvPoint結構
      
      
         70
      
           CvSeq *s1 = cvGetFileNodeByName(fs, ms_node, 
      
        "
      
      
        CvPoint
      
      
        "
      
      )->
      
        data.seq;


      
      
         71
      
      
            CvPoint point;


      
      
         72
      
           point.x= cvReadInt((CvFileNode*)cvGetSeqElem(s1,
      
        0
      
      
        ));


      
      
         73
      
           point.y= cvReadInt((CvFileNode*)cvGetSeqElem(s1,
      
        1
      
      
        ));


      
      
         74
      
           ms->point =
      
         point;


      
      
         75
      
      
         76
      
      
        //
      
      
         讀取CvRect結構
      
      
         77
      
           CvSeq *s2 = cvGetFileNodeByName(fs, ms_node, 
      
        "
      
      
        CvRect
      
      
        "
      
      )->
      
        data.seq;


      
      
         78
      
      
            CvRect rect;


      
      
         79
      
           rect.x=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 
      
        0
      
      
        ));


      
      
         80
      
           rect.y=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 
      
        1
      
      
        ));


      
      
         81
      
           rect.width=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 
      
        3
      
      
        ));


      
      
         82
      
           rect.height=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 
      
        2
      
      
        ));


      
      
         83
      
           ms->rect =
      
         rect;


      
      
         84
      
      
        }


      
      
         85
      
      
         86
      
      
        //
      
      
         將MyStruct的值顯示出來
      
      
         87
      
      
        void
      
       ShowStructValue(MyStruct*
      
         pvalue)


      
      
         88
      
      
        {


      
      
         89
      
           printf(
      
        "
      
      
        integer:%d\n
      
      
        "
      
      , pvalue->
      
        i);


      
      
         90
      
           printf(
      
        "
      
      
        CvPoint: (%d, %d)\n
      
      
        "
      
      , pvalue->point.x, pvalue->
      
        point.y );


      
      
         91
      
           printf(
      
        "
      
      
        CvRect: h-->%d\tw-->%d\t(%d, %d)\n
      
      
        "
      
      , pvalue->
      
        rect.height, 


      
      
         92
      
               pvalue->rect.width, pvalue->rect.x, pvalue->
      
        rect.y);


      
      
         93
      
      
        }


      
      
         94
      
      
         95
      
      
        //
      
      
         檢查兩個MyStruct是否一致
      
      
         96
      
      
        bool
      
       check(MyStruct* msValue1, MyStruct*
      
         msValue2)


      
      
         97
      
      
        {


      
      
         98
      
      
        if
      
      ( (msValue1->i == msValue2->i) && 


      
         99
      
               (msValue1->point.x == msValue2->point.x) &&


      
        100
      
               (msValue1->point.y == msValue2->point.y) && 


      
        101
      
               (msValue1->rect.height == msValue2->rect.height) && 


      
        102
      
               (msValue1->rect.width == msValue2->rect.width) && 


      
        103
      
               (msValue1->rect.x == msValue2->rect.x) && 


      
        104
      
               (msValue1->rect.y == msValue2->
      
        rect.y) )


      
      
        105
      
      
        return
      
      
        true
      
      
        ;


      
      
        106
      
      
        else
      
      
        107
      
      
        return
      
      
        false
      
      
        ;


      
      
        108
      
      
        }


      
      
        109
      
      
        110
      
      
        int
      
      
         main()


      
      
        111
      
      
        {


      
      
        112
      
      
        /*
      
      
         寫數據部分 
      
      
        */
      
      
        113
      
      
            MyStruct msArray[ARRAY_LENGTH];


      
      
        114
      
      
        115
      
           CvFileStorage* fs = cvOpenFileStorage(
      
        "
      
      
        My_struct.xml
      
      
        "
      
      , 
      
        0
      
      
        , CV_STORAGE_WRITE);


      
      
        116
      
      
        char
      
       pchTag[
      
        12
      
      
        ]; 


      
      
        117
      
      
        //
      
      
         隨機生成數據
      
      
        118
      
      
        for
      
      (
      
        int
      
       i = 
      
        0
      
      ; i < ARRAY_LENGTH; i++
      
        )


      
      
        119
      
      
            {


      
      
        120
      
               CvRNG rng =
      
         cvRNG(cvGetTickCount());


      
      
        121
      
      
        122
      
               msArray[i].i = cvRandInt(&rng) % 
      
        256
      
      
        ;


      
      
        123
      
               msArray[i].point = cvPoint( cvRandInt(&rng) % 
      
        1000
      
      , cvRandInt(&rng) % 
      
        1000
      
      
        );


      
      
        124
      
               msArray[i].rect = cvRect( cvRandInt(&rng) % 
      
        1000
      
      , cvRandInt(&rng) % 
      
        1000
      
      
        ,


      
      
        125
      
                   cvRandInt(&rng) % 
      
        600
      
      , cvRandInt(&rng) % 
      
        600
      
      
         );


      
      
        126
      
      
        127
      
      
        //
      
      
         最后一個整數計數
      
      
        128
      
               sprintf( pchTag, 
      
        "
      
      
        my_struct_%d
      
      
        "
      
      
        , i );


      
      
        129
      
               write_my_struct(fs, pchTag, &
      
        msArray[i]);


      
      
        130
      
      
            }


      
      
        131
      
      
        132
      
           cvReleaseFileStorage(&
      
        fs);


      
      
        133
      
      
        134
      
      
        /*
      
      
         讀數據部分 
      
      
        */
      
      
        135
      
           fs = cvOpenFileStorage(
      
        "
      
      
        My_struct.xml
      
      
        "
      
      
        , NULL, CV_STORAGE_READ );


      
      
        136
      
      
            MyStruct msArrayRead[ARRAY_LENGTH];


      
      
        137
      
            CvFileNode *
      
        pnode; 


      
      
        138
      
      
        139
      
      
        for
      
      (
      
        int
      
       i = 
      
        0
      
      ; i < ARRAY_LENGTH; i++
      
        )


      
      
        140
      
      
            {


      
      
        141
      
               sprintf( pchTag, 
      
        "
      
      
        my_struct_%d
      
      
        "
      
      
        , i );


      
      
        142
      
               pnode =
      
         cvGetFileNodeByName(fs, NULL, pchTag);


      
      
        143
      
               read_my_struct( fs, pnode, &
      
        msArrayRead[i] );


      
      
        144
      
      
        145
      
      
        //
      
      
         顯示
      
      
        146
      
               printf(
      
        "
      
      
        ---------------------- %d: Write -------------------------\n
      
      
        "
      
      
        , i);


      
      
        147
      
               ShowStructValue( &
      
        msArray[i]);


      
      
        148
      
               printf(
      
        "
      
      
        ---------------------- %d: Read --------------------------\n
      
      
        "
      
      
        , i);


      
      
        149
      
               ShowStructValue( &
      
        msArrayRead[i]);


      
      
        150
      
      
        //
      
      
         檢查讀寫是否一致
      
      
        151
      
      
        if
      
      (check(&msArray[i], &
      
        msArrayRead[i] ))


      
      
        152
      
      
                {


      
      
        153
      
                   printf(
      
        "
      
      
        Consistent?:\tAnswer: True\n
      
      
        "
      
      
        );


      
      
        154
      
      
                }


      
      
        155
      
      
        else
      
      
        156
      
      
                {


      
      
        157
      
                   printf(
      
        "
      
      
        Consistent?:\tAnswer: False\n
      
      
        "
      
      
        );


      
      
        158
      
      
                }


      
      
        159
      
      
                getchar();


      
      
        160
      
      
            }


      
      
        161
      
      
        162
      
           cvReleaseFileStorage(&
      
        fs); 


      
      
        163
      
      
        164
      
      
        return
      
      
        0
      
      
        ;


      
      
        165
      
       }
    

對應的XML文件:

《學習OpenCV》練習題第三章第八題b

?

運行結果:

《學習OpenCV》練習題第三章第八題b

?

?

《學習OpenCV》練習題第三章第八題b


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产在线激情视频 | 国内精品久久久久久西瓜色吧 | 全免费a级毛片免费看视频免 | 欧美成人区 | 妇女网站爱嘿嘿视频免费观看 | 五月婷婷激情综合 | 97影院午夜午夜伦不卡 | 日本特级aⅴ一级毛片 | 亚洲精品综合网 | 国产伦一区二区三区免费 | 精品一区二区免费视频 | 久久综合九色综合91 | 国产精品亚洲综合一区 | 国产一区在线视频观看 | 天天草天天干天天 | 亚洲乱码在线观看 | 欧美大片一区 | 亚洲毛片在线 | 日韩欧美在线观看视频 | 久久久青草青青国产亚洲免观 | 亚洲精品久久片久久 | 亚洲综合色视频 | 日日操操干干 | 久久国产免费福利资源网站 | 成人夜视频 | 97色在线观看 | 51国产午夜精品免费视频 | 国产日本欧美亚洲精品视 | 成年香蕉大黄美女美女 | 免费一级a毛片免费观看欧美大片 | 久久精品国产精品亚洲毛片 | 99精彩视频 | 久久99热在线观看7 久久99热这里只有精品 | 国产老熟| 欧美夜夜片a | 国产成人亚洲综合 | 一区二区三区免费视频观看 | 久久99热精品免费观看欧美 | 只有精品| 精品乱人伦一区二区三区 | 一区二区三区无码高清视频 |