▶ 영상 위에 그림 그리고 글쓰기
영상을 불러와서 그 위에 사각형을 그리고, 글씨를 적어보려고 한다. 아래와 같은 절차를 밟을 것이다.
1. 영상 읽기
2. 영상 띄우기
3. 영상 위에 사각형 그리기- cv::rectangle
4. 영상 위에 글쓰기- cv::putText
코드는 아래와 같다. 코드에 주석을 달아놓았으니 참고하자.
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp> // rectangle과 putText 함수 사용을 위해
#include <iostream>
int main()
{
cv::Mat image;
image = cv::imread("cutlet.JPG");
cv::imshow("pork cutlet", image);
cv::rectangle(image, cv::Point(20, 60), cv::Point(400, 300), cv::Scalar(255, 0, 0), 3, 1, 0); // 사각형 그리기
cv::putText(image, "I like a pork cutlet!", cv::Point(30, 340), cv::FONT_HERSHEY_PLAIN, 2.0, cv::Scalar(0, 0, 255), 2); // 글쓰기
cv::imshow("new", image);
cv::waitKey(0);
return 0;
}
실행 결과 나온 두 개의 이미지를 보자.
왼쪽은 원본 이미지이고, 오른쪽은 사각형과 글이 추가된 이미지이다.
▶ 좀 더 알고 넘어갈 것들
1) cv::rectangle(입력 이미지, 사각형의 왼쪽 모서리 위치, 사각형의 아래쪽 모서리 위치, 색상, 선 굵기, 선 유형, shift)
색상은 cv::Scalar(255, 0, 0)이라고 코딩했는데, blue(B), green(G), red(R) 순서이므로 파란색이 된 것이다. 만약 cv::Scalar(0, 255, 0)라고 코딩했다면 초록색의 사각형이 생겼을 것이다.
입력 매개변수들 중에서 가장 마지막 것인 shift는 어떤 의미를 갖는지 잘 모르겠지만 간단히 0으로 설정하면 된다.
2) cv::putText(입력 이미지, 입력 문구, 문구 시작 위치, 폰트, 글자크기, 글자색상, 글자굵기)
<참고자료>
[1] 로버트 라가니에 지음, 이문호 옮김, "OpenCV를 활용한 컴퓨터 비전 프로그래밍 3/e", 에이콘
'Dev > C, C++' 카테고리의 다른 글
제가 심심풀이로 만든 저격수 훈련 게임: '아임스나이퍼' (은근 중독성 있음) (18) | 2018.02.06 |
---|---|
[opencv와 C++로 컴퓨터 비전] 예쁜 타이머 만들기 (타이머 종료시 음악 재생) (6) | 2018.02.02 |
[opencv와 C++로 컴퓨터 비전] 영상에 소금-후추 잡음(salt-and-pepper noise) 넣기 (2) | 2018.02.01 |
[opencv와 C++로 컴퓨터 비전] 영상 위에 로고 넣기 (0) | 2018.01.31 |
[opencv와 C++로 컴퓨터 비전] 마우스로 영상 위에서 클릭한 위치와 화소 값 출력하기 (0) | 2018.01.29 |
[opencv와 C++로 컴퓨터 비전] 영상 읽고, 띄우고, 축소하고, 좌우반전하고, 저장하기 (0) | 2018.01.29 |
C언어의 메모리 구조: 데이터(Data), 스택(Stack) 그리고 힙(Heap) 영역 (2) | 2017.10.16 |
포인터의 이해 (6) | 2017.10.09 |