소개
cv2.line은 OpenCV에서 이미지 위에 선을 그리는 함수입니다. 이미지 배열을 입력받아 시작점과 끝점을 지정하고, 해당 좌표를 연결하는 직선을 그릴 수 있습니다. 다양한 색상, 두께, 선의 유형을 설정할 수 있어 이미지 처리, 데이터 시각화, 그래픽 생성 등의 작업에 자주 사용됩니다.
기본 사용법
# 기본 사용법
import cv2
import numpy as np
# 빈 이미지 생성 (검은색 배경)
image = np.zeros((500, 500, 3), dtype=np.uint8)
# 이미지 위에 선 그리기 (시작점, 끝점, 색상, 두께)
cv2.line(image, (100, 100), (400, 400), (255, 0, 0), 5)
# 그린 이미지를 창에 표시
cv2.imshow('Line Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 다양한 옵션
import cv2
import numpy as np
# 빈 이미지 생성
image = np.zeros((500, 500, 3), dtype=np.uint8)
# 빨간색 두꺼운 선 그리기
cv2.line(image, (50, 50), (450, 50), (0, 0, 255), 10)
# 초록색 점선 그리기
cv2.line(image, (50, 100), (450, 100), (0, 255, 0), 3, cv2.LINE_AA)
# 파란색 얇은 선 그리기
cv2.line(image, (50, 150), (450, 150), (255, 0, 0), 1)
# 이미지 출력
cv2.imshow('Line Image with Options', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
상세 설명
- 기본 사용법: cv2.line(이미지, 시작점, 끝점, 색상, 두께)는 이미지 위에 지정된 좌표로 선을 그립니다.
- 색상: BGR 형식으로 색상을 지정합니다. 예를 들어, (255, 0, 0)은 파란색, (0, 255, 0)은 초록색입니다.
- 두께: 선의 두께를 픽셀 단위로 지정합니다. 기본값은 1입니다.
- 선 유형: cv2.LINE_AA 옵션을 사용하면 더 부드러운 안티앨리어싱 효과를 가진 선을 그릴 수 있습니다. 다른 유형으로는 cv2.LINE_8 (기본값), cv2.LINE_4 등이 있습니다.
- 이미지 위에 선 그리기
- cv2.line 함수는 시작점과 끝점을 연결하는 선을 이미지 위에 그리며, 다양한 옵션을 제공하여 두께, 색상, 선의 유형을 조정할 수 있습니다.
- 이미지를 데이터 시각화, 그래픽 구성, 또는 마스크 생성에 사용할 때 선을 그려 특정 영역을 강조하거나 분할할 수 있습니다.
- 활용
- 이 함수는 이미지에 경계선을 그리거나, 객체 감지 후 바운딩 박스를 표시하는 등 시각적 피드백을 제공할 때 유용합니다.
예시 설명
- 첫 번째 예시에서는 검은색 배경 위에 파란색 선을 그린 후 이미지를 표시합니다. 선의 시작점은 (100, 100)이고 끝점은 (400, 400)입니다.
- 두 번째 예시에서는 빨간색 두꺼운 선, 초록색 점선, 파란색 얇은 선을 각각 그려 다양한 옵션을 활용하는 방법을 보여줍니다.
라이센스
OpenCV 4.4.0 까지는 3-clause BSD license를 따르고 있으며 자유롭게 사용, 수정, 배포할 수 있으며, 상업적 목적으로도 사용할 수 있습니다.
OpenCV 4.5.0 이상 부터는 Apache 2 License를 따르고 있습니다. 해당 라이선스는 사용, 수정, 배포, 상업적 이용을 자유롭게 허용하며, 사용자가 해당 소프트웨어의 기여자에 대한 특허 청구를 방지하도록 명시하는 것을 특징으로 합니다. 또한 수정된 코드를 배포할 때 변경 사항을 고지해야 하며, 특허 분쟁 시 관련 권리를 상실할 수 있습니다.
관련 내용
[OpenCV] 비디오 생성 및 저장하기: cv2.VideoWriter() 사용 및 설명
[OpenCV] 카메라 및 비디오 파일에서 프레임 읽기: cv2.VideoCapture() 사용 및 설명
[OpenCV] 이미지의 엣지를 보호하며 부드럽게: cv2.medianBlur() 사용 및 설명
[OpenCV] 이미지 흐리게 만들기: cv2.GaussianBlur() 사용 및 설명
[OpenCV] 이미지 색상 공간 변환: cv2.cvtColor() 사용 및 설명
[OpenCV] 이미지 축소: cv2.pyrDown() 사용 및 설명
[OpenCV] 이미지 확대: cv2.pyrUp() 사용 및 설명
[OpenCV] 원 찾기: cv2.HoughCircles() 사용 및 설명
[OpenCV] 직선 찾기: cv2.HoughLines() 사용 및 설명
[OpenCV] 경계선 찾기: cv2.Canny() 사용 및 설명
[OpenCV] 적응형 임계값 처리하기: cv2.adaptiveThreshold() 사용 및 설명
[OpenCV] 이미지 임계값 처리: cv2.threshold() 사용 및 설명
[OpenCV] 이미지의 원근 변환: cv2.warpPerspective() 사용 및 설명
[OpenCV] 이미지 기하학적 변환: cv2.warpAffine() 사용 및 설명
[OpenCV] 이미지 좌우, 상하 반전하기: cv2.flip() 사용 및 설명
[OpenCV] 이미지 회전: cv2.rotate() 사용 및 설명
[OpenCV] 이미지 크기 조절: cv2.resize() 사용 및 설명
[OpenCV] 이미지 팽창하기: cv2.dilate() 사용 및 설명
[OpenCV] 이미지 침식하기: cv2.erode() 사용 및 설명
[OpenCV] 이미지 블렌딩하기: cv2.addWeighted() 사용 및 설명
[OpenCV] 이미지 간 빼기: cv2.subtract 사용법() 사용 및 설명
[OpenCV] 이미지 간 더하기: cv2.add() 사용 및 설명
[OpenCV] 이미지에 다각형 그리기: cv2.polylines() 사용 및 설명
[OpenCV] 이미지에 원 그리기: cv2.circle() 사용 및 설명
[OpenCV] 이미지에 사각형 그리기: cv2.rectangle() 사용 및 설명
[OpenCV] 이미지에 선 그리기: cv2.line 사용법() 사용 및 설명
[OpenCV] 이미지에 텍스트 추가하기: cv2.putText() 사용 및 설명
[OpenCV] 이미지 창에 표시하기: cv2.imshow() 사용 및 설명
'함수 설명 > 컴퓨터 비전 (OpenCV, PIL)' 카테고리의 다른 글
[OpenCV] 이미지에 원 그리기: cv2.circle() 사용 및 설명 (0) | 2024.09.28 |
---|---|
[OpenCV] 이미지에 사각형 그리기: cv2.rectangle() 사용 및 설명 (0) | 2024.09.28 |
[OpenCV] 이미지에 텍스트 추가하기: cv2.putText() 사용 및 설명 (0) | 2024.09.28 |
[OpenCV] 이미지 창에 표시하기: cv2.imshow() 사용 및 설명 (0) | 2024.09.28 |
[OpenCV] 이미지 파일 저장하기: cv2.imwrite() 사용 및 설명 (0) | 2024.09.28 |