《学习OpenCV》练习题第三章第八题b

1 #include <highgui.h> 2 #include <cv.h> 3 #include <stdio.h>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”) *《学习OpenCV》第三章第八题b 22 * 完成时间:19:46 4/4 星期四 2013ARRAY_LENGTH 10 typedef struct my_struct 28 { 29int i; 30 CvPoint point; 31 CvRect rect; 32 } MyStruct;write_my_struct(CvFileStorage * fs, const char* name, my_struct* ms) 35 {cvStartWriteStruct(fs, name, 6);cvStartWriteStruct(fs,,CV_NODE_SEQ); 41cvWriteInt(fs,NULL,ms->i); 42 cvEndWriteStruct(fs);cvStartWriteStruct(fs,,CV_NODE_SEQ); 46cvWriteInt(fs,NULL,ms->point.x); 47cvWriteInt(fs,NULL,ms->point.y); 48 cvEndWriteStruct(fs);cvStartWriteStruct(fs,,CV_NODE_SEQ); 52cvWriteInt(fs,NULL,ms->rect.x); 53cvWriteInt(fs,NULL,ms->rect.y); 54cvWriteInt(fs,NULL,ms->rect.height); 55cvWriteInt(fs,NULL,ms->rect.width); 56 cvEndWriteStruct(fs); cvEndWriteStruct(fs); 60 }read_my_struct(CvFileStorage* fs, CvFileNode* ms_node, my_struct* ms) 63 { 64// 读第一个整数i = cvGetFileNodeByName(fs, ms_node, )->data.i; 67ms->i = i;CvSeq *s1 = cvGetFileNodeByName(fs, ms_node, )->data.seq; 71 CvPoint point; 72point.x= cvReadInt((CvFileNode*)cvGetSeqElem(s1,0)); 73point.y= cvReadInt((CvFileNode*)cvGetSeqElem(s1,1)); 74ms->point = point;CvSeq *s2 = cvGetFileNodeByName(fs, ms_node, )->data.seq; 78 CvRect rect; 79rect.x=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 0)); 80rect.y=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 1)); 81rect.width=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 3)); 82rect.height=cvReadInt((CvFileNode*)cvGetSeqElem(s2, 2)); 83ms->rect = rect; 84 }ShowStructValue(MyStruct* pvalue) 88 {, pvalue->i);, pvalue->point.x, pvalue->point.y );, pvalue->rect.height, 92pvalue->rect.width, pvalue->rect.x, pvalue->rect.y); 93 }check(MyStruct* msValue1, MyStruct* msValue2) 97 { 98if( (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) );;108 } main()111 { MyStruct msArray[ARRAY_LENGTH];, 0, CV_STORAGE_WRITE);116char pchTag[12]; (int i = 0; i < ARRAY_LENGTH; i++)119 {120CvRNG rng = cvRNG(cvGetTickCount());121122msArray[i].i = cvRandInt(&rng) % 256;123msArray[i].point = cvPoint( cvRandInt(&rng) % 1000, cvRandInt(&rng) % 1000);124msArray[i].rect = cvRect( cvRandInt(&rng) % 1000, cvRandInt(&rng) % 1000,125cvRandInt(&rng) % 600, cvRandInt(&rng) % 600 );sprintf( pchTag, , i );129write_my_struct(fs, pchTag, &msArray[i]);130 }131 132cvReleaseFileStorage(&fs);fs = cvOpenFileStorage(, NULL, CV_STORAGE_READ );136 MyStruct msArrayRead[ARRAY_LENGTH];137CvFileNode *pnode; (int i = 0; i < ARRAY_LENGTH; i++)140 {, i );142pnode = cvGetFileNodeByName(fs, NULL, pchTag);143read_my_struct( fs, pnode, &msArrayRead[i] );printf(, i);147ShowStructValue( &msArray[i]);, i);149ShowStructValue( &msArrayRead[i]);(check(&msArray[i], &msArrayRead[i] ))152 {);154 }{);158 }159 getchar();160 }161 162cvReleaseFileStorage(&fs); ;165 },网站空间,香港服务器,美国服务器以诚感人者,人亦诚而应。

《学习OpenCV》练习题第三章第八题b

相关文章:

你感兴趣的文章:

标签云: