[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 공식 문서를 참고하시기 바랍니다.
복잡한 문제에 대한 해결책은 항상 실제 응용 프로그램에 따라 달라질 수 있습니다. 따라서 추가적인 조언을 위해서는 전문가와 상담하는 것이 좋습니다.