Python OpenCV filter2D를 사용한 영상처리(3)

2019. 7. 25. 23:06해봤던것들

영상에 OpenCV filter2D 사용

 

이미지에 사용한 필터를 영상에도 사용해 봅시다.

영상은 아이유-삐삐 MV의 일부를 사용했습니다.

import cv2
import numpy as np

cap = cv2.VideoCapture('./아이유.mp4') #원본영상

필터가 적용된 영상을 저장하기 위해 영상의 사이즈, 코덱을 불러옵니다.

frame_size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
              int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print('frame_size =', frame_size)
fourcc = cv2.VideoWriter_fourcc(*'XVID') #영상코덱
out1 = cv2.VideoWriter('./아이유TEST.mp4',fourcc, 20.0, frame_size, isColor = True) #저장될 영상정보

코덱은 가장 보편적으로 사용하는 XVID 코덱을 사용합니다.

필터가 적용된 영상을 구분해 주기 위해서 영상에 Text도 넣어 줍니다.

text = 'TEST' #입력될 text
org = (10, 30) #text 위치
font = cv2.FONT_HERSHEY_SIMPLEX #폰트

이제 영상에 필터를 적용시키기 위해 영상을 프레임 단위로 가져옵니다.

while True:   
    retval, frame = cap.read() # 프레임 캡처

    if not retval:
        break

필터는 이미지와 같은 방법으로 적용시킵니다.

 

필터를 적용시킨 영상의 프레임에 Text를 적고 저장합니다.

필터가 적용된 영상을 실시간으로 확인하기 위해서 cv2.imshow로 변경된 프레임을 보여줍니다.

cv2.putText(cgframe,text, org, font, 1, (255,0,0), 2)  #프레임에 text쓰기
size, baseLine = cv2.getTextSize(text, font, 1, 2)   #text폰스, 스케일, 색상
out1.write(cgframe) #변경된 프레임 out1에 쓰기
cv2.imshow('cgframe',cgframe) #변경된 프레임 보여주기

원본영상
Sobel필터 적용
Laplacian필터 적용
Average필터 적용
Weighted Average필터 적용


 

Yeowoolee/OpenCV-filter2D

OpenCV-filter2D. Contribute to Yeowoolee/OpenCV-filter2D development by creating an account on GitHub.

github.com