더북(TheBook)

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() 함수의 맨 마지막 인자 shift0보다 같거나 큰 정수를 지정할 수 있으며, 지정한 크기만큼 직선 좌표 값을 오른쪽 비트 시프트 연산(>>)을 수행한 후 직선 그리기 작업을 수행합니다. shift 인자 값이 0이면 지정한 좌표를 그대로 사용하여 그리기를 수행합니다. line() 함수의 인자 중에서 thinkness, lineType, shift 인자는 기본값이 지정되어 있으므로 생략할 수 있습니다.

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