본문 바로가기
Project

수화 인식 프로젝트 - [5일차] 웹캠 특정 영역 잘라내기(openCV)

by 배애앰이 좋아 2020. 3. 6.
반응형

전체 화면을 하니 너무 많은 부분에서 살색 부분들이 잡혀서 그런 부분들을 좀 줄이고자 손을 놓을 부분을 정해 그 부분만 잘라서 검사하고자 추가하였습니다.

 

원하는 부분을 잘라내기 위해서 openCV selectROI를 사용하였습니다.

 

import cv2

def on_mouse(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        points.append([x, y])
        
points = list()

try:
    cap=cv2.VideoCapture(0)
except:
    print('camera_errro1')

ret, img = cap.read()
rect = cv2.selectROI('Select Window', img, fromCenter = False, showCrosshair = True)
cv2.destroyWindow('Select Window')

while True:
    ret, frame = cap.read()
    
    if not ret:
        print('camera_error2')
        break
        
    dst = frame.copy()
    x, y, w, h = rect
    cv2.rectangle(img=frame, pt1=(x, y), pt2=(x + w, y + h), color=(0, 0, 255), thickness=2)
    dst = dst[y:y+h,  x:x+w]
        
    cv2.imshow("frame", frame)
    cv2.imshow("dst", dst)
    
    if cv2.waitKey(1) & 0xff == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

 

금방 끝날 줄 알았는데 생각보다 시간을 많이 잡아먹었네요ㅠ 다음에는 기존 코드에다가 더해서 응용할 생각입니다.

 

해당 영상 :  https://youtu.be/PGVzYUYNWHk

 

반응형

댓글