이 튜토리얼에서는 Python의 OpenCV 라이브러리에서 제공하는 cv2.line() 함수를 사용하여 이미지 위에 직선을 그리는 방법을 단계별로 알아보겠습니다. 이미지 처리 기초 작업 중 하나인 선 그리기는 객체 검출 결과 시각화, 관심 영역(ROI) 표시 등 다양한 용도로 활용됩니다.
원본 이미지
아래는 선을 그리기 전의 원본 이미지입니다.

알고리즘
1단계: cv2 모듈을 임포트합니다. 2단계: imread() 함수로 이미지를 불러옵니다. 3단계: image.shape 속성으로 이미지의 크기(높이, 너비, 채널 수)를 확인합니다. 4단계: 선의 시작 좌표를 정의합니다. 5단계: 선의 끝 좌표를 정의합니다. 6단계: 선의 두께를 정의합니다. 7단계: cv2.line() 함수를 호출하고 위에서 정의한 값들을 매개변수로 전달하여 선을 그립니다.
예제 코드
import cv2
# 이미지 불러오기
image = cv2.imread('testimage.jpg')
# 이미지 크기 확인
height, width, channels = image.shape
# 선의 시작점과 끝점 정의
startpoint = (0, 0)
endpoint = (height, width)
# 선의 두께와 색상 설정 (BGR 형식)
thickness = 9
color = (255, 0, 0)
# 선 그리기
image = cv2.line(image, startpoint, endpoint, color, thickness)
# 결과 출력
cv2.imshow('Line', image)코드 설명
- 시작점과 끝점: 시작점은 이미지의 좌측 상단 모서리인 (0, 0)으로, 끝점은 (height, width)로 설정하여 대각선 방향의 선을 만듭니다.
- 두께(thickness): 값이 클수록 더 굵은 선이 그려집니다. 여기서는 9픽셀로 설정했습니다.
- 색상(color): OpenCV는 RGB가 아닌 BGR(파랑, 초록, 빨강) 순서로 색상을 표현합니다. 따라서 (255, 0, 0)은 파란색을 의미합니다.
실행 결과

결과 분석
실행 결과를 보면 이미지의 좌측 상단에서 우측 하단까지 대각선 방향으로 파란색 선이 그려진 것을 확인할 수 있습니다. 이처럼 cv2.line() 함수는 시작점, 끝점, 색상, 두께만 지정하면 손쉽게 원하는 위치에 선을 그릴 수 있어, 이미지 위에 주석이나 마커를 추가하는 작업에 매우 유용합니다.