파이썬으로 영상처리_이미지, 동영상 출력

k_minseokVv·2024년 1월 8일
0

OpenCV - Python

목록 보기
2/13

분명 학교에서 영상처리를 배운 적이 있지만 기억이 많이 휘발된 관계로 기초부터 빠르게 훑고 넘어가보도록 하겠습니다.

강의 출처 : https://youtu.be/XK3eU9egll8?si=XVVCeT77UdvIplzy

1. 이미지, 동영상 출력

읽기 옵션

  1. cv2.IMREAD_COLOR : 컬러 이미지, 투명 영역은 무시(기본값)
  2. cv2.IMREAD_GRAYSCALE : 흑백
  3. cv2.IMREAD_UNCHANGED : 투명 영역까지 포함

사진 출력

import cv2

img_color = cv2.imread('img.jpg',cv2.IMREAD_COLOR) 
img_gray = cv2.imread('img.jpg',cv2.IMREAD_GRAYSCALE) 
img_unchanged= cv2.imread('img.jpg',cv2.IMREAD_UNCHANGED)

print(img_color.shape) # 세로 가로 채널 정보 볼 수 있음
print(img_gray.shape)
print(img_unchanged.shape)
#채널이 3이란 의미는 BGR을 가짐

cv2.imshow('img_color',img_color)
cv2.imshow('img_gray',img_gray)
cv2.imshow('img_unchanged',img_unchanged)

cv2.waitKey(0) # 지정된 시간동안 사용자 키 입력 대기 0은 무한
cv2.destroyAllWindows() # 모든 창 닫기

cv2.IMREAD_GRAYSCALE에선 channel이 나오지 않는 것을 확인할 수 있음

동영상 출력

  • 저장된 동영상 출력
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) #영상 출력
    
    if cv2.waitKey(60) == ord('q'): #waitKey() 안에 숫자를 조정하면 영상 재생 속도가 달라짐
        print('사용자 입력에 의해 종료')
        break
    
cap.release() #해제
cv2.destroyAllWindows() #종료
  • 웹캠 출력
import cv2
cap = cv2.VideoCapture(0) #0번 째 카메라 장치

if not cap.isOpened(): #카메라가 켜진지 확인
    exit() # 프로그램 종료

while True:
    ret, frame = cap.read()
    if not ret:
        break
    
    flip_horizontal = cv2.flip(frame,1)
    cv2.imshow('camera',flip_horizontal)
    if cv2.waitKey(10) == ord('q'):
        break
        
cap.release()
cv2.destroyAllWindows()
profile
C++, Python 활용 중

0개의 댓글