더북(TheBook)

3.1.6 String 클래스

이번에는 OpenCV에서 문자열을 다루는 방법에 대해 알아보겠습니다. 많은 C/C++ 프로그램이 그러하듯이 OpenCV에서도 문자열을 다루는 경우가 많습니다. OpenCV에서는 영상 출력 창에 고유의 문자열을 지정하여 구분하고, 영상에 문자열을 출력하는 기능도 제공합니다. C++ 표준 라이브러리(STL)에서 std::string 클래스를 이용하여 문자열을 저장하고 처리하듯이 OpenCV에서는 cv::String 클래스를 사용하여 문자열을 저장하고 처리할 수 있습니다.

원래 OpenCV 라이브러리에서는 자체적인 String 클래스를 정의하여 사용했습니다. String 클래스는 std::string 클래스와 완전히 호환되도록 설계되어 있어서 std::string 클래스를 다루는 방식과 유사하게 사용할 수 있었습니다. 그러다가 OpenCV 4.0 버전부터는 자체적인 String 클래스 정의를 삭제하고, 대신 C++ 표준 라이브러리의 std::string 클래스를 String 클래스로 이름 재정의하였습니다. 실제로 OpenCV 헤더 파일에는 다음과 같이 이름 재정의 코드가 들어가 있습니다.

typedef std::string String;

결국 OpenCV 4.0 버전부터 std::string 클래스와 String 클래스는 완전히 같은 클래스입니다. 다만 코드 호환성을 위하여 여전히 OpenCV 코드에서는 std::string 대신 String 클래스 이름을 사용합니다.

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