728x90
반응형
SMALL
💡 문제.
웹캠(또는 동영상)에서 스페이스바를 누를 때마다 '일반영상', '가우시안 필터영상', '케니 필터영상'으로 변환되는 프로그램을 작성해보자.
📄 사용한 동영상 파일
import cv2
import numpy as np
cap = cv2.VideoCapture('cat.mp4')
def blur_filter(img):
img = cv2.GaussianBlur(img, (3, 3), 0)
return img
def canny_filter(img):
med_val = np.median(img)
lower = int(max(0, 0.7 * med_val))
upper = int(min(255, 1.3 * med_val))
img = cv2.GaussianBlur(img, (3, 3), 0)
img = cv2.Canny(img, lower, upper)
return img
cam_mode = 0
while True:
ret, frame = cap.read()
if not ret:
print("비디오를 읽을 수 없습니다.")
break
if cam_mode == 1:
frame = blur_filter(frame)
elif cam_mode == 2:
frame = canny_filter(frame)
cv2.imshow('frame', frame)
key = cv2.waitKey(1)
if key == 27: # ESC 키
break
elif key == ord(' '):
cam_mode += 1
if cam_mode == 3:
cam_mode = 0
cap.release()
cv2.destroyAllWindows()
728x90
반응형
LIST
'KDT > 과제' 카테고리의 다른 글
[파이썬, Python] 지니뮤직 Top200 크롤링하기! (0) | 2023.09.04 |
---|---|
[파이썬, Python] OpenCV - 원하는 ROI 설정 후 투시변환하기 (0) | 2023.08.30 |
[파이썬, Python] OpenCV - 동영상 2개를 이어 재생하기! (0) | 2023.08.24 |
[파이썬, Python] 알고리즘 - 1️⃣ 재귀호출(recursive call) (0) | 2023.06.29 |
[파이썬, Python] 서브워드분리(subword segmentation) - WordPiece Tokenizer (0) | 2023.06.29 |