OpenCV Python Tracking 예제OpenCV/OpenCV 강좌2024. 5. 24. 00:00
Table of Contents
반응형
OpenCV에서 제공하는 Tracker를 사용한 Tracking 예제입니다.
2024. 5. 23 최초작성
import cv2 import time # 카메라 장치 열기. 윈도우/리눅스에선 0을 사용하고 맥북에선 1을 사용합니다. cap = cv2.VideoCapture(1) # 웹캠 초기화 시간을 고려하여 딜레이를 줍니다. time.sleep(1) # 트래커 객체를 생성합니다. tracker = cv2.TrackerKCF_create() # 첫 프레임 읽어옵니다. ret, frame = cap.read() if not ret: print("프레임을 읽을 수 없습니다.") cap.release() cv2.destroyAllWindows() exit(1) # ROI를 선택합니다. 사각형 그릴 시작위치에서 마우스로 클릭 후 드래그하여 사각형을 완성 후, ESC 키를 누르면 됩니다. roi = cv2.selectROI("tracker", frame, fromCenter=False, showCrosshair=True) print(roi) # ROI가 선택되지 않은 경우입니다. if roi[2] == 0 or roi[3] == 0: print('ROI가 선택되지 않았습니다.') cap.release() cv2.destroyAllWindows() exit(0) # 트래커를 지정한 ROI로 초기화합니다. tracker.init(frame, roi) # 트래킹 프로세스를 시작합니다. print("Start the tracking process, press ESC to quit.\n") while True: # 비디오로부터 프레임을 가져옵니다. ret, frame = cap.read() if not ret: break # 트래킹 결과를 업데이트하여 변경된 ROI를 반환받습니다. success, roi = tracker.update(frame) if success: # 트래킹된 객체의 위치에 사각형을 그려좁니다. p1 = (int(roi[0]), int(roi[1])) p2 = (int(roi[0] + roi[2]), int(roi[1] + roi[3])) cv2.rectangle(frame, p1, p2, (255, 0, 0), 2, 1) else: # 트래킹 실패시 메시지 출력합니다. cv2.putText(frame, "Tracking failure detected", (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) # 영상을 화면에 보여줍니다. cv2.imshow("tracker", frame) # ESC 키를 누르면 종료헙니다. if cv2.waitKey(1) == 27: break # 자원을 해제합니다. cap.release() cv2.destroyAllWindows() |
참고
https://docs.opencv.org/4.x/d2/d0a/tutorial_introduction_to_tracker.html
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
SIFT와 XFeat 사용해보기 (0) | 2024.07.28 |
---|---|
OpenCV에서 CUDA 사용해보기 (0) | 2024.06.29 |
OpenCV Python 마우스 이벤트 예제 (0) | 2024.05.18 |
두 점 사이의 각도를 구하는 OpenCV Python 예제 코드 (1) | 2024.04.25 |
OpenCV - 이미지 파일을 mp4 동영상 파일로 변환하는 파이썬 코드 (0) | 2024.04.20 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!