2-5. 카메라와 동영상 처리하기1

cv2.VideoCapture

    OpenCV에서 카메라와 동영상으로부터 프레임(frame)을 받아오는 작업을 한번에 처리할 수 있는 클래스

     아래 표는 cv2.VideoCaputre 클래스 내 주요하게 쓰이는 함수들의 목록과 설명이다.

함수 인자 설명
cv2.VideoCapture(index, apiPreference) -> cv2.VideoCapture 객체 index: camera_id + domain_offset_id
(시스템 기본 카메라 + 기본 방법 -> 0)
apiPreference: 선호하는 카메라 처리 방법
카메라 열기
cv2.VideoCapture.open(index, apiPreference) -> Boolean
cv2.VideoCapture(filename, apiPreference) -> cv2.VideoCapture 객체 filename: 비디어 파일 이름, 정지 영상 시퀀스, 비디오 스트림 url 등
apiPreference: 선호하는 동영상 처리 방법
동영상, 정지 영상 시퀀스, 비디오 스트림 열기
cv2.VideoCapture.open(filename, apiPreference) -> Boolean
cv2.VideoCapture.isOpened() -> Boolean   비디오 캡쳐가 준비 확인
cv2.VideoCaputre.read(image=None) -> Boolean, image image: numpy.ndarray 형식 영상 프레임 받아오기
cv2.VideoCapture.get(propId) -> 속성 값 or 0(실패) *propId: 속성 상수 카메라, 비디오 장치 속성 값 받기
cv2.VideoCapture.set(propId, value) -> Boolean *propId: 속성 상수
value: 속성 값
카메라, 비디오 장치 속성 값 정하기

    이 외 grab()/retrieve(), release() 등의 함수들이 더 있다. 

    *propId(속성 상수)의 경우 OpenCV에서 제공하는 VideoCaputreProperties를 둘러봐야한다. (여기 참조) 아래 그림은 강의에서 제공해준 기본적인 속성들 리스트이다.

propId 예시 (출처: FastCampus)

     아래 코드는 카메라 처리하기 위한 코드 순서를 주석으로 작성한 내용이다. 강의 영상에서는 OpenCV에서 제공하는 윤곽선 따는 함수로 예제를 보여주셨다.

# import sys
# import OpenCV

# 기본 카메라 장치 열기 (속성 x)

# 카메라 장치가 잘 열렸는지 확인
 # 안열렸으면 오류 메세지 출력 후 시스템 종료

# Inifinte Loop
 # 카메라로부터 프레임 받아오기 (받아온 여부 확인용 Boolean 값과 받아온 프레임 영상을 저장)
 # Boolean 값 확인
  # 받아오지 못했다면 오류 메세지 출력 후 Loop 탈출
 # 현재 프레임에 ~ 사용해 반전 프레임 생성
 # 기존 프레임 출력
 # 반전 프레임 출력
 
 # 일정시간 동안 ESC 키가 눌리나 확인
  # 눌리면 Loop 탈출

# 사용한 자원 해제 (cv2.VideoCapture.release() 함수 사용)
# 모든 창 닫기

     카메라 장치를 열러고 하니 글쓴이의 PC에는 카메라가 연결이 안되어 있어서 error 메세지를 보았다.

     만약 잘 열렸다면 get() 함수를 사용해 fps 라던가 delay 등을 확인 해 볼 수 있다. propId의 경우 사용하는 카메라나 카메라 라이브러리가 그 속성 정보를 제공해야만 사용할 수 있으므로 테스트가 많이 팔요하다.

     그래서 전에 학습 인증 용으로 찍어두었던 동영상을 사용하여 예제 코드를 테스트 해 보았다.

 

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.


인증 타임

PC의 경우 카메라가 없어서 테스트 해보지 못한게 좀 아쉽다. 노트북은 기본 카메라가 내장 되어 있으니 나중에 테스트 해봐야 겠다. OpenCV에서 많은 영상 편집 함수를 제공하는지 Canny 함수 적용 된 모습을 강의에서 보여주셨는데 평소 카메라 어플에서 많이 보던 윤곽선 따는 듯한 모습을 볼 수 있어서 흥미로웠다. 편집 관련 함수도 나중에 더 설명해 주신다고 하시는데 어떤 것들이 있을지 기대된다.

2-5. 공부 인증 사진


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

+ Recent posts