IT/영상처리

[OpenCV] Video 읽어 보여주기

chn1002 2022. 5. 17. 08:20

[OpenCV] Video 읽어 보여주기

OpenCV 에서는 카메라로 부터 비디오를 캡쳐하여 화면에 오여 줄수 있습니다. 카메라로 부터 받은 데이터들은 증강현실 , 등등에 영상 처리에서 사용될 수 있습니다.

 

cv2.VideoCapture(0)

  • 비디오 캡쳐를 위해 VideoCapture 함수를 호출할 수 있습니다. VideoCaptuer 의 인자는 장치의 인덱스 입니다. PC 의 여러개의 카메라를 사용할 때 인덱스를 변경하여 특정 카메라를 선택할 수 있습니다. 첫번째 캠은 0 입니다.

ret, frame = cap.read()

  • 캠에서 재생되는 비디오의 한 프레임씩 읽어 frame 변수에 넣어 줍니다. ret 는 결과를 말합니다.

gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

  • 제공된 frame 을 흑백으로 변경하였습니다. 

cap.release()

  • 만약 cap 의 사용이 끝났다면, release 를 호출하여 해제합니다. 
def showVideoMain():
    try:
        print("Cam running")
        cap = cv2.VideoCapture(0)
    except:
        print("Failed Cam running")
        return
    
    cap.set(3, 480)
    cap.set(4, 320)
    
    while True:
        ret, frame = cap.read()
        
        if not ret:
            print('Video read error')
            break
        
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cv2.imshow('video', gray)
        
        key = cv2.waitKey(1)
        
        if key == 27 :
            break
        
        
    cap.release()
    cv2.destroyAllWindows()