Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

<시간/>

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() 

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

선 그리기

선 그리기에는 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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

사각형 그리기

직사각형을 그리려면 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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

원을 그리려면

원을 그리려면 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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

타원을 그리려면

타원을 그리려면 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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

다각형을 그리려면

폴리곤을 그리기 위해서는 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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기

텍스트를 그리려면

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()

출력

Python OpenCv 모듈을 사용하여 이미지에 기하학적 모양 그리기