drawText2() 함수 실행 결과를 그림 4-7에 나타냈습니다. 그림 4-7에는 drawText2() 함수 동작을 쉽게 이해할 수 있도록 실제 img1 출력 창 모습 위에 함수 내부에서 사용되는 변수 의미를 함께 나타냈습니다. 파란색으로 그려진 “Hello, OpenCV” 문자열과 사각형은 drawText2() 함수에서 그린 것이고, 나머지 sizeImg, sizeText, org를 표시한 글씨와 그림은 함수 동작 이해를 위해 추가로 표시한 것입니다. 소스 코드와 그림에 나타난 변수를 함께 살펴보면서 drawText2() 예제 코드의 동작을 이해하기 바랍니다.
▲ 그림 4-7 영상의 중앙에 문자열 출력하기 실행 결과와 동작 원리
Note
OpenCV의 그리기 함수는 영상의 픽셀 값을 변경시켜 그림을 그립니다. 그러므로 일반 영상 위에 그리기 함수로 직선, 도형, 문자열을 출력하면 원본 영상의 픽셀 값은 복구할 수 없게 됩니다. 만약 영상에 그리기를 수행한 후에 다시 원본 영상을 사용할 필요가 있다면 미리 원본 영상을 복사해 두고 사용해야 합니다. 이때 대입 연산자 혹은 Mat 클래스 복사 생성자를 사용하여 복사하는 것이 아니라 Mat::clone() 또는 Mat::copyTo() 함수를 사용해야 한다는 점을 기억하세요.