목차
영상인식기술을 학습하기 위해 오늘부터는 pycharm 환경에서 python3.11버전을 이용해서 opencv모듈을 사용하여 학습을 진행한다.
오늘 공부할 내용은 총 3가지이다.
1. image 가져오기
2. video 가져오기
3. webcam 열기
Resource 폴더에는 이미지와 비디오를 미리 첨부해 놓는다.
0. openCV 모듈 설치하기
Requirements txt파일을 생성하고 내용에 opencv-python이라고 적는다.
터미널에서 아래의 내용을 입력하여 모듈을 설치한다.
pip install -r requirements.txt
1. image 가져오기
import cv2
#Read Image using OpenCV
image = cv2.imread("../Resources/Images/image1.jpg")
#Display the Image
cv2.imshow("Image", image)
#waitKey : 키 입력 대기
#1000 = 1sec
#0 : 수동으로 닫기 조절
cv2.waitKey(0)
cv2.destroyAllWindows()
2. video 가져오기
#Import All the Required Libraries
# pip install opencv-python
#cv2 이용해서 비디오를 프레임 단위로 읽고 화면에 출력하기
import cv2
cap = cv2.VideoCapture("../Resources/Videos/video1.mp4")
while True:
#ret : T/F 프레임을 정상적으로 읽었는지 여부 확인
#frame : 현재 프레임 이미지
ret, frame = cap.read()
if ret:
cv2.imshow("Frame", frame)
# 비디오 속도조절 : 1의 값이면 거의 실시간 송출
# OxFF 키보드입력처리, ord 문자의 아스키값을 반환
if cv2.waitKey(1) & 0xFF == ord('1'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
1) cv2.waitKey(1)
- OpenCV에서 키 입력을 대기(wait) 하는 함수
- 괄호 안의 숫자(1)는 대기 시간(ms) 을 의미
- 1ms 동안 키 입력을 기다림
- 1로 설정하면 비디오가 거의 실시간으로 재생됨
- 30으로 하면 30ms 동안 대기(프레임 속도 조절 가능)
2) & 0xFF
- 키보드 입력을 처리할 때 비트 연산자(& 0xFF)를 사용
- OpenCV는 32비트 정수로 키 입력을 처리하는데, 이를 8비트(ASCII 코드) 값만 남기기 위한 연산
- Windows에서는 없어도 되지만, Linux나 macOS에서는 필수
3) ord('1')
- '1' 문자의 ASCII 값(십진수 49)을 반환
- 즉, 사용자가 숫자 1 키를 누르면 ord('1')의 값(49)과 cv2.waitKey(1)의 값이 같아져 break 실행
3. webcam 열기
import cv2
#Create a Live Webcam Feed Capture Object
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow("Webcam", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 비디오 캡쳐 객체 연결을 해제
# 비디오 파일을 열어서 사용했다면 사용이 끝난 후 반드시 해당 함수 호출하여 카메라 계속 열려있지 않도록
cap.release()
cv2.destroyAllWindows()
opencv 기초, 이미지 동영상 웹캠 가져오기
'머신러닝 > CNN' 카테고리의 다른 글
OpenCV 기초, Wrap perspective, flatten, 사진 펼치기, 스캔 (0) | 2025.02.19 |
---|---|
openCV 기초, 가우시안 블러, BGR, blur, edge, dialation, erosion, resize, crop, draw, input text, color (1) | 2025.02.19 |
cifar10 데이터 이용한 CNN 모델 설계 2 (0) | 2023.04.15 |
컴퓨터 비전 시스템의 이해 (0) | 2023.04.15 |
cifar10 데이터 이용한 CNN 모델 설계 1 (0) | 2023.03.11 |