[python] 파이썬을 사용하여 카메라로부터의 원 모양 인식하기

이번에는 파이썬과 OpenCV를 사용하여 카메라로부터 원 모양을 식별하여 표시하는 방법을 살펴보겠습니다.

필요한 라이브러리 설치

OpenCV를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다.

pip install opencv-python

카메라에서 영상 가져오기

다음으로 웹캠으로부터 영상을 가져오기 위해 OpenCV를 사용합니다.

import cv2

# 카메라 열기
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()

    # 영상을 보여주기
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

원 형상 인식 및 표시

이제 가져온 영상에서 원을 인식하고 표시하는 방법을 확인해봅시다.

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()

    # 이미지를 그레이 스케일로 변환
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 가우시안 블러로 노이즈 제거
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)

    # 허프 변환을 사용하여 원 찾기
    circles = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, 1, 20,
                               param1=50, param2=30, minRadius=0, maxRadius=0)

    if circles is not None:
        circles = np.uint16(np.around(circles))

        for i in circles[0, :]:
            # 원 주변에 원을 그리기
            cv2.circle(frame, (i[0], i[1]), i[2], (0, 255, 0), 2)
            # 원 중심점 표시
            cv2.circle(frame, (i[0], i[1]), 2, (0, 0, 255), 3)

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

이제, 카메라로부터의 영상에서 원을 식별하고 표시하는 방법을 알 수 있었습니다.

더 많은 정보는 OpenCV 공식 문서를 참고하시기 바랍니다.

OpenCV 공식 문서

복잡한 문제에 대한 해결책은 항상 실제 응용 프로그램에 따라 달라질 수 있습니다. 따라서 추가적인 조언을 위해서는 전문가와 상담하는 것이 좋습니다.