4.2.1 직선 그리기
가장 먼저 살펴볼 OpenCV 그리기 함수는 영상 위에 직선을 그리는 line() 함수입니다. line() 함수도 cv 네임스페이스에서 선언되어 있지만 이 책에서는 간단히 line() 함수라고 표기하겠습니다. line() 함수 원형은 다음과 같습니다.
void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0); |
|
• img |
입출력 영상 |
• pt1 |
시작점 |
• pt2 |
끝점 |
• color |
선 색상(또는 밝기) |
• thickness |
선 두께 |
• lineType |
선 타입. LINE_4, LINE_8, LINE_AA 중 하나를 지정합니다. |
• shift |
그리기 좌표 값의 축소 비율(오른쪽 비트 시프트(>>) 연산) |
line() 함수는 img 영상 위에 pt1 좌표부터 pt2 좌표까지 직선을 그립니다. 이때 선 색상 또는 밝기는 color 인자로 지정할 수 있습니다. 예를 들어 3채널 컬러 영상에 빨간색 선을 그리려면 color 인자에 Scalar(0, 0, 255)를 전달하고, 그레이스케일 영상에 검은색 선을 그리려면 0 또는 Scalar(0)을 전달합니다. thinkness 인자는 선 두께를 의미하고, lineType 인자는 직선을 그리는 방식을 지정합니다. lineType 인자에는 LineTypes 열거형 상수 중 하나를 지정할 수 있으며, LineTypes 열거형 상수와 의미를 표 4-4에 정리했습니다. line() 함수의 맨 마지막 인자 shift는 0보다 같거나 큰 정수를 지정할 수 있으며, 지정한 크기만큼 직선 좌표 값을 오른쪽 비트 시프트 연산(>>)을 수행한 후 직선 그리기 작업을 수행합니다. shift 인자 값이 0이면 지정한 좌표를 그대로 사용하여 그리기를 수행합니다. line() 함수의 인자 중에서 thinkness, lineType, shift 인자는 기본값이 지정되어 있으므로 생략할 수 있습니다.