OpenCV (Computer Vision)란?
- 다양한 영상 (이미지) / 동영상 처리에 사용되는 오픈소스 라이브러리
=> ex) 이미지를 흑백으로 변경, 이미지의 특정 영역을 잘라내기
- OpenCV의 기능을 이용하여 여러 응용 프로젝트를 제작할 수 있다
=> ex) 문서 스캐너, 얼굴 인식, 모션 인식
1. OpenCV 설치
- 파이썬을 실행하는 에디터에 맞는 프롬프트에서 해당 명령어를 입력한다. (Jupyter Notebook: Anaconda Prompt, PyCharm: 에디터 터미널)
2. OpenCV 라이브러리 Import
- OpenCV를 설치 했으면 파이썬 코드 내에서 cv2라는 이름으로 OpenCV를 임포트 할 수 있다.
import cv2
3. 동영상 파일 읽어오기
1) cv2.VideoCapture() 함수를 사용하여 읽어올 수 있다.
2) 읽어온 영상 자체를 cap이라는 변수에 저장한다.
cap = cv2.VideoCapture('video.mp4')
4. 동영상 출력
1) cap.isOpened() 함수를 사용하여 동영상 파일 업로드 성공 여부를 판단하여 반복문을 시작한다.
=> 동영상을 출력하기 위해 영상 내 프레임 단위의 이미지를 순차적으로 출력해야 하므로 반복문을 사용한다.
2) cap.read() 함수를 사용하여 영상의 프레임 존재 여부와 프레임 자체를 가져온다.
3) cv2.imshow() 함수 내 프레임을 삽입하여 해당 프레임 이미지를 출력한다.
- 위 3단계가 프레임이 존재하지 않을 때까지 반복되어 연속된 프레임을 출력, 결국 영상이 출력된다.
while cap.isOpened(): # 동영상 파일이 올바르게 열렸는지?
ret, frame = cap.read() # ret: 프레임 존재 여부, frame: 받아온 이미지 (프레임)
if not ret:
print('더 이상 가져올 프레임이 없어요')
break
cv2.imshow('video', frame) # 'video' 라는 이름의 창에 영상이 출력된다
5. 동영상 종료
- 영상이 종료되었으므로 영상을 재생하는 메모리를 해제하여 자원을 반납하고, 해당 영상 창을 닫는다.
cap.release() #자원 해제
cv2.destroyAllWindows()
※ 전체 코드
import cv2
cap = cv2.VideoCapture('video.mp4')
while cap.isOpened(): # 동영상 파일이 올바르게 열렸는지?
ret, frame = cap.read() # ret: 성공 여부, frame: 받아온 이미지 (프레임)
if not ret:
print('더 이상 가져올 프레임이 없어요')
break
cv2.imshow('video', frame)
cap.release() #자원 해제
cv2.destroyAllWindows()
'Python > OpenCV' 카테고리의 다른 글
[OpenCV] 이미지의 특정 위치 좌표 추출 (0) | 2024.02.21 |
---|---|
[OpenCV] 이미지 합성 (0) | 2024.02.08 |
[OpenCV] 이미지 윤곽선 검출 (0) | 2024.02.07 |
[OpenCV] OpenCV 미니 창에 마우스 이벤트 처리하기 (0) | 2023.12.30 |