OpenCV의 기본 작업은 이미지 위에 그리는 것입니다. 선, 원, 직사각형 등과 같은 다양한 기하학적 모양을 추가하는 기능.
종종 이미지 분석 작업을 할 때 예를 들어 해당 부분을 정의하는 사각형을 추가하여 이미지의 일부를 강조 표시하려고 합니다. 또한 예를 들어 무언가를 나타내는 화살표가 있습니다.
cv2.line() - 이 함수는 이미지에 선을 그리는 데 사용됩니다.
cv2.rectangle() - 이 함수는 이미지에 사각형을 그리는 데 사용됩니다.
cv2.circle() - 이 함수는 이미지에 원을 그리는 데 사용됩니다.
cv2.putText() - 이 함수는 이미지에 텍스트를 쓰는 데 사용됩니다.
cv2.ellipse() - 이 함수는 이미지에 타원을 그리는 데 사용됩니다.
예시 코드
numpy를 npimport cv2my_img =np.zeros((350, 350, 3), dtype ="uint8")cv2.imshow('Window', my_img)cv2.waitKey(0)cv2.destroyAllWindows()사전>출력
선 그리기
선 그리기에는 cv2.line() 함수가 사용됩니다. 이 함수는 5개의 인수를 사용합니다.
- 그릴 이미지 개체
- 시작점 좌표(x, y)
- 종점 좌표(x, y)
- BGR의 획 색상(RGB 아님, 참고)
- 획 두께(픽셀)
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((350, 350, 3), dtype ="uint8")# linecv2.line(my_img, (202, 220), (100, 160), (0)을 위해 생성 , 20, 200), 10)cv2.imshow('창', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
출력
사각형 그리기
직사각형을 그리려면 cv2.rectangle() 함수가 사용됩니다. 이 함수는 5개의 입력 매개변수를 받습니다.
- 그릴 이미지 개체
- 왼쪽 상단의 꼭짓점 좌표(x, y)
- 오른쪽 아래 꼭짓점의 좌표(x, y)
- BGR의 획 색상(RGB 아님, 참고)
- 획 두께(픽셀)
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# 직사각형 만들기cv2.rectangle(my_img, (30, 30), (300, 200), (0) , 20, 200), 10)cv2.imshow('Window', my_img)# 강제로 닫힐 때까지 이미지#를 볼 수 있습니다.cv2.waitKey(0)cv2.destroyAllWindows()
출력
원을 그리려면
원을 그리려면 cv2.circle() 함수를 사용합니다. 이 함수는 5개의 입력 매개변수를 받습니다.
- 그릴 이미지 개체
- 중심 좌표(x, y)
- 원의 반경
- BGR의 획 색상(RGB 아님, 참고)
- 획 두께(픽셀)
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# circlecv2.circle(my_img, (200, 200), 80, (0, 20, 200) 생성 , 10)cv2.imshow('창', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
출력
타원을 그리려면
타원을 그리려면 cv2.ellipse() 함수를 사용합니다. 이 함수는 8개의 입력 매개변수를 받습니다.
- 이미지를 그릴 이미지 개체
- 중심 좌표(x, y)
- 단축 및 장축의 길이(h, w)
- 타원의 회전 각도(시계 반대 방향으로 계산됨)
- 시작 각도(시계 방향으로 계산)
- 최종 각도(시계 방향으로 계산)
- BGR의 획 색상(참고할 RGB 아님)
- 획 두께
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# 직사각형 cv2.ellipse(my_img,(256,256),(102,50),0,05,180, -1)cv2.imshow('Window', my_img)# 강제로 닫힐 때까지 이미지#를 볼 수 있습니다.cv2.waitKey(0)cv2.destroyAllWindows()
출력
다각형을 그리려면
폴리곤을 그리기 위해서는 cv2.polylines() 함수를 사용합니다. 이 함수에는 5개의 인수가 필요합니다.
- 그릴 이미지 개체
- 좌표 배열
- 폐쇄선인 경우 참입니다.
- 획 색상
- 획 두께
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")pts =np.array([[10,5],[20,30],[70,20] ],[50,10]], np.int32)pts =pts.reshape((-1,1,2))cv2.polylines(my_img,[pts],True,(0,255,255))cv2.imshow('창 ', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
출력
텍스트를 그리려면
OpenCV로 텍스트를 작성하려면 여러 인수를 허용하는 cv2.putText() 함수가 있습니다.
- 그릴 이미지
- 작성할 텍스트
- 텍스트 시작점의 좌표
- 사용할 글꼴
- 글꼴 크기
- 텍스트 색상
- 텍스트 두께
- 사용된 라인 유형
예시 코드
numpy를 npimport로 가져오기 cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# 쓰기 textfont =cv2.FONT_HERSHEY_SIMPLEXcv2.putText(my_img, '튜토리얼 포인트', (50, 글꼴, 0.8, (255, 0, 0), 2, cv2.LINE_AA)cv2.imshow('창', my_img)cv2.waitKey(0)cv2.destroyAllWindows()