많은 프로그램에서 그렇듯 OpenCV에서도 문자열을 다루는 경우가 많다.
OpenCV 에서는 영상 출력 창에 고유의 문자열을 지정하여 구분하고, 영상에 문자열을 출력하는 기능을 제공한다.
C++ 표준 라이브러리(STL) 에서 std::string 클래스와 같이 OpenCV 에서는 cv::String 클래스를 사용하여 문자열을 저장하고 차리할 수 있다.
OpenCV 4.0 버전 이전에 자체적인 String 클래스를 정의하여 사용하였다.
그러닥 OpenCV 4.0 버전부터 자체적인 String 클래스 정의를 삭제하고 대신 C++ 표준 라이브러리의
std::string 클래스를 String 클래스로 이름 재정의하여 사용한다.
실제로 OpenCV 헤더 파일에는 다음과 같이 typedef로 재정의 코드가 들어가 있다.
typedef std::string String;
결론은 OpenCV 4.0 버전부터 std::string 클래스와 String 클래스는 완전히 같은 클래스이다.
문자열 저장 코드 작성 방법
String str1 = "Hello";
String str2 = "World";
String 타입의 문자열 객체는 큰 따옴표( " " ) 로 감싸진 문자열로부터 간단히 만들 수 있다.
덧셈 연산자를 이용하여 문자열을 이어서 하나의 문자열로 만들 수 있다.
String str1 = "Hello";
String str2 = "World";
String str3 = str1 + " " + str2;
두 문자열 객체의 내용을 비교하기 위해 std::string::copare() 함수 또는 == 연산자를 사용할 수 있다.
String str1 = "Hello";
String str2 = "World";
bool str3 = (str2 == "WORLD");
str2 변수에는 대소문자로 구성된 "World"가 저장되어 있으므로 "WORLD"와 비교 시 대소문자가 맞지 않아
서로 다르다고 인식하여 false를 반환하여 str3에는 false가 저장된다.
특정 문자열 작성 방법
OpenCV에서는 특정한 형식의 문자열을 만들 수 있는 함수로 foramt() 함수를 제공한다.
String format(const char* fmt, ...);
fmt : 형식 문자열
... : 가변 인자
반환값 : 지정한 형식으로 생성된 문자열
format() 함수는 가변 인자 함수로 정의되어 있으며 사용법은 C언어의 printf() 함수와 유사하다.
printf() 함수를 사용하듯이 함수의 인자를 설정하면 그에 해당하는 출력 문자열이 String 객체 형태로 반환된다.
'DevelopmentTool > OpenCV' 카테고리의 다른 글
[OpenCV] Mat 클래스의 자료형 (1) | 2022.11.17 |
---|---|
[OpenCV] Mat 클래스 (1) | 2022.11.17 |
[OpenCV] Range 클래스 (0) | 2022.11.17 |
[OpenCV] RotatedRect 클래스 (0) | 2022.11.17 |
[OpenCV] Rect_ 클래스 (0) | 2022.11.16 |