더북(TheBook)

4.4.3 데이터 파일 불러오기

이번에는 FileStorage 클래스를 이용하여 XML/YAML/JSON 형식의 파일로부터 데이터를 읽어 오는 방법을 알아보겠습니다. FileStorage 클래스를 이용하여 데이터 파일을 읽어 오려면 먼저 FileStorage 객체를 생성하고, 그다음 실제 사용할 데이터 파일을 읽기 모드로 열어야 합니다. FileStorage 클래스의 생성자 중에서 파일 이름과 열기 모드를 지정하는 생성자를 이용하여 두 가지 작업을 한꺼번에 수행할 수 있습니다. 다음은 FileStorage 객체 fs를 선언함과 동시에 mydata.json 파일을 읽기 모드로 여는 예제 코드입니다.

FileStorage fs("mydata.json", FileStorage::READ);

FileStorage 객체가 XML/YAML/JSON 파일을 읽기 모드로 열면 FileStorage 객체는 파일 전체를 분석하여 계층적 구조를 갖는 노드(node) 집합을 구성합니다. 노드는 이름과 값으로 구성되어 있는 하나의 데이터를 의미합니다. 하나의 노드는 하나의 정수 혹은 문자열을 저장하고 있는 경우도 있고, 여러 데이터의 집합으로 구성되기도 합니다. OpenCV는 이러한 노드를 FileNode 클래스를 이용하여 표현합니다. 특정 이름으로 저장되어 있는 FileNode 객체에 접근하려면 FileStorage::operator[]() 연산자 재정의 함수를 사용합니다.

FileNode FileStorage::operator[](const char* nodename) const;

nodename

노드 이름

반환값

FileNode 객체

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.