/20110421/SeriablelImageMatrix/main.cpp

https://github.com/itrufeng/learncv · C++ · 53 lines · 37 code · 1 blank · 15 comment · 0 complexity · e406e5ebe51ef4e59fc80a512f7319af MD5 · raw file

  1. /*
  2. * main.cpp
  3. *
  4. * Created on: 2011-4-21
  5. * Author: egame
  6. */
  7. #include <opencv/cv.h>
  8. #include <opencv/highgui.h>
  9. int main(int args,char *argv[]){
  10. assert(argv[1]);
  11. IplImage *matTmage = cvLoadImage(argv[1],CV_LOAD_IMAGE_ANYCOLOR);
  12. IplImage *readTmage;
  13. cvNamedWindow("viewSeriableImage",CV_WINDOW_AUTOSIZE);
  14. // 保存一个矩阵
  15. CvMat matA = cvMat(5,5,CV_32F);
  16. cvSave("/Users/egame/Documents/workspaceforC/SeriablelImageMatrix/Debug/matA.xml",&matA);
  17. // 载入矩阵
  18. CvMat *matInput = (CvMat*)cvLoad("/Users/egame/Documents/workspaceforC/SeriablelImageMatrix/Debug/matA.xml");
  19. // 查看一下矩阵是否有在内存空间
  20. printf("0x%0.8x\n",matInput);
  21. printf("0x00%x\n",matInput);
  22. // 手动写入配置
  23. CvFileStorage *fs = cvOpenFileStorage("/Users/egame/Documents/workspaceforC/SeriablelImageMatrix/Debug/cfg.xml",NULL,CV_STORAGE_WRITE);
  24. cvWriteInt(fs,"size",10);
  25. cvStartWriteStruct(fs,"diy",CV_NODE_SEQ);
  26. cvWriteInt(fs,NULL,20);
  27. cvWriteInt(fs,NULL,10);
  28. cvWriteInt(fs,NULL,100);
  29. cvEndWriteStruct(fs);
  30. // 写入矩阵数据
  31. cvWrite(fs,"dataIt",matTmage);
  32. cvReleaseFileStorage(&fs);
  33. // 手动载入配置
  34. CvFileStorage *fs2 = cvOpenFileStorage("/Users/egame/Documents/workspaceforC/SeriablelImageMatrix/Debug/cfg.xml",NULL,CV_STORAGE_READ);
  35. int size = cvReadIntByName(fs2,NULL,"size");
  36. printf("size:%d\n",size);
  37. CvSeq *seq = cvGetFileNodeByName(fs2,NULL,"diy")->data.seq;
  38. int one = cvReadInt((CvFileNode*)cvGetSeqElem(seq,0));
  39. int two = cvReadInt((CvFileNode*)cvGetSeqElem(seq,1));
  40. int three = cvReadInt((CvFileNode*)cvGetSeqElem(seq,2));
  41. printf("one:%d,two:%d,three:%d\n",one,two,three);
  42. // 读取矩阵数据
  43. readTmage = (IplImage*)cvReadByName(fs2,NULL,"dataIt");
  44. cvShowImage("viewSeriableImage",readTmage);
  45. cvReleaseFileStorage(&fs2);
  46. //
  47. cvWaitKey(0);
  48. //
  49. cvReleaseImage(&readTmage);
  50. cvReleaseImage(&matTmage);
  51. return 0;
  52. }