• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

OpenCV FileStorage를 이용하여 xml을 읽고 쓰자

Programming/OpenCV 2020. 10. 7. 10:03




OpenCV에서 제공하는 기능 중 FileStorage라는 놈을 이용하여 xml을 읽고 쓰기가 가능하다.

 

대부분의 기능은 iostream과 유사한 형태로 사용 가능해서 바로 쓸 수 있지만 두가지 기능은 알아야 한다.

 

1. Sequence Collection ( "[", "]" )

이 놈은 데이터를 리스트 형태로 관리해 주는 놈으로써 [ ] 를 이용하여 출력한다.

 

2. Mapping Collection ( "{", "}" )

이 놈은 계층을 관리 해 주는 놈으로써 { } 를 이용하여 출력한다. 

 

이 두 기능도 직관적이라 사용이 어렵진 않다. 

 


샘플 코드

FileStorage fs("_sample.xml", FileStorage::WRITE);
time_t date;
time(&date);

fs << "Date" << asctime(localtime(&date));
fs << "ID" << "USER ID";
fs << "Originfilelist" << "[";
fs << "F:/test_video/kinect1/originvideo.mkv";
fs << "F:/test_video/kinect2/originvideo.mkv";
fs << "F:/test_video/kinect3/originvideo.mkv";
fs << "]";

fs << "Sample" << "{";
fs << "Sourcefile" << "F:/test_video/kinect1/originvideo.mkv";
fs << "Filename" << "2_1-r.mkv";
fs << "FilePath" << "F:/test_video/parsing/kinect1/2_1-r.mkv";
fs << "OriginTime" << "00:33:39-00:33:46";
fs << "Memo" << " ";
fs << "Function" << "{";
fs << "Name" << "Function1";
fs << "score" << "N" << "}";
fs << "Function" << "{";
fs << "Name" << "Function2";
fs << "score" << "N";
fs << "}";
fs << "}";

xml 결과

<?xml version="1.0"?>
<opencv_storage>
<Date>"Wed Oct  7 10:01:54 2020&#x0a;"</Date>
<ID>"USER ID"</ID>
<Originfilelist>
  F:/test_video/kinect1/originvideo.mkv
  F:/test_video/kinect2/originvideo.mkv
  F:/test_video/kinect3/originvideo.mkv</Originfilelist>
<Sample>
  <Sourcefile>F:/test_video/kinect1/originvideo.mkv</Sourcefile>
  <Filename>"2_1-r.mkv"</Filename>
  <FilePath>F:/test_video/parsing/kinect1/2_1-r.mkv</FilePath>
  <OriginTime>"00:33:39-00:33:46"</OriginTime>
  <Memo>" "</Memo>
  <Function>
    <Name>Function1</Name>
    <score>N</score></Function>
  <Function>
    <Name>Function2</Name>
    <score>N</score></Function></Sample>
</opencv_storage>

 


(20.11.26. 수정) 위 샘플은 xml 작성규칙에 맞지 않음.

동일 이름의 노드 생성은 규칙에 어긋나기 때문에 위와 같이 생성은 되지만

filestorage를 이용하여 다시 읽을때 문제가 발생한다.

 

동일이름의 노드 생성은 하지 않도록 하자.

 

저작자표시 (새창열림)

'Programming > OpenCV' 카테고리의 다른 글

폰트 변경이 가능한 putText를 사용하자  (0) 2021.04.29
jpeg 파일 디코딩하기.  (1) 2015.11.11
unsigned char* 형 버퍼를 IplImage 또는 Mat 으로 변환하기.  (0) 2014.08.18
[Function] HoG Destriptor in OpenCV  (0) 2014.01.27
[Function] 영상을 회전 시키기  (0) 2014.01.23
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

카테고리

  • 살다보니.. (448)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • DeepLearning
  • 칼로리 대폭발
  • portugal
  • SVM
  • 후쿠오카
  • 딥러닝
  • LIBSVM
  • 포르투갈
  • CStdioFile
  • 일본
  • Convolutional Neural Networks
  • matlab function
  • ReadString
  • DSLR
  • matlab
  • Deep Learning
  • 오봉자싸롱
  • 스마트체험단
  • 매트랩
  • random variable
  • 큐슈
  • 크롬
  • 갤럭시노트3
  • ColorMeRad
  • utility
  • 매트랩 함수
  • 에누리닷컴
  • Computer Tip
  • function
  • review

달력

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
05-24 02:19

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바