Python에서 OpenCV 모듈을 사용하여 사각형 그리기

Vaibhav Vaibhav 2022년1월22일
Python에서 OpenCV 모듈을 사용하여 사각형 그리기

OpenCV는 실시간 컴퓨터 비전 라이브러리입니다. Python, Java 및 C++와 같은 프로그래밍 언어에서 사용할 수 있습니다. OpenCV를 사용하여 모양을 그리고 효율적으로 이미지를 처리할 수 있습니다. 이 기사에서는 OpenCV 모듈을 사용하여 사각형을 그리는 방법을 배웁니다.

OpenCV를 사용하여 사각형 그리기

OpenCV 모듈에는 직사각형을 그리는 데 사용할 수 있는 rectangle() 함수가 있습니다. 이미지 객체를 반환합니다. 다음 인수를 허용합니다.

  • img: 사각형이 생성되어야 하는 이미지 개체입니다.
  • pt1: 직사각형의 시작 좌표입니다. x 좌표 값과 y 좌표 값이 있는 튜플을 허용합니다.
  • pt2: 사각형의 끝 좌표입니다. x 좌표 값과 y 좌표 값이 있는 튜플을 허용합니다.
  • color: 사각형의 색상을 나타내는 튜플입니다. OpenCV는 기본적으로 BGR 형식을 고려합니다. 따라서 일반적인 RGB 형식이 아닌 BGR 형식으로 값을 입력해야 합니다. 예를 들어 (255, 0, 0)은 파란색을 나타내고 (0, 0, 255)는 빨간색을 나타냅니다.
  • thickness: 직사각형 테두리의 두께입니다. 단위는 px입니다. -1의 두께는 직사각형을 지정된 색상으로 채웁니다. 다른 양수 두께 값의 경우 사각형은 지정된 색상으로 채워지지 않습니다. 국경에만 적용됩니다.

이제 이 함수를 사용하여 직사각형을 그리는 방법을 살펴보겠습니다. 예제는 다음 코드를 참조하십시오.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 0, 255)
thickness = 3
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

위의 코드는 먼저 지정된 경로에서 이미지를 로드하고 cv2.COLOR_BGR2RGB를 사용하여 BGR 색상 순서를 RGB 색상 순서로 변환한 다음 이미지 위에 360 x 360 크기의 직사각형을 그립니다. 두께 값은 양수입니다. 이것은 사각형에 채우기 색상이 없음을 의미합니다.

또한 코드 끝에 이 cv2.waitKey(0) 문이 있습니다. 프로그램이 실행되면 이미지가 자동으로 닫히는 것을 방지합니다. 이 문장 없이 프로그램을 실행하면 수정된 이미지가 나타나고 바로 닫힙니다.

출력:

opencv cv2 python에서 직사각형 그리기

두께 값을 -1로 변경하면 어떻게 될까요? 이 경우 사각형은 채우기 색상을 갖게 됩니다. 동일한 내용은 다음 코드를 참조하십시오.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 255, 255)
thickness = -1
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

출력:

opencv cv2 python에서 직사각형 그리기 - 두께를 -1로 설정

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python OpenCV