In [1]:
from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈
6. 크기 조정¶
이미지¶
고정 크기로 설정
In [2]:
import cv2
img = cv2.imread('../MEDIA/img.png')
dst = cv2.resize(img, (400,500)) # width, height
cv2.imshow('img',img)
cv2.imshow('resize', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
show_image_with_pil(img, 'img')
show_image_with_pil(dst, 'dst')
'img'
'dst'
비율로 설정
In [3]:
import cv2
img = cv2.imread('../MEDIA/img.png')
dst = cv2.resize(img, None, fx = 0.5, fy = 0.5) # 비율 축소
cv2.imshow('img',img)
cv2.imshow('resize', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
show_image_with_pil(img, 'img')
show_image_with_pil(dst, 'dst')
'img'
'dst'
보간법¶
- cv2.INTER_AREA : 크기 줄일 때 사용
- cv2.INTER_CUBIC : 크기 늘릴 때 사용 (속도 느림, 퀄리티 좋음)
- cv2.INTER_LINEAR : 크기 늘릴 때 사용 (기본값)
보간법 적용하여 축소
In [4]:
import cv2
img = cv2.imread('../MEDIA/img.png')
dst1 = cv2.resize(img, None, fx = 0.5, fy = 0.5, interpolation = cv2.INTER_AREA)
dst2 = cv2.resize(img, None, fx = 1.3, fy = 1.3, interpolation = cv2.INTER_CUBIC)
dst3 = cv2.resize(img, None, fx = 1.3, fy = 1.3, interpolation = cv2.INTER_LINEAR)
cv2.imshow('img',img)
cv2.imshow('resize1', dst1)
cv2.imshow('resize2', dst2)
cv2.imshow('resize3', dst3)
cv2.waitKey(0)
cv2.destroyAllWindows()
show_image_with_pil(img, 'img')
show_image_with_pil(dst1, 'dst1')
show_image_with_pil(dst2, 'dst2')
show_image_with_pil(dst3, 'dst3')
'img'
'dst1'
'dst2'
'dst3'
동영상¶
고정 크기로 설정
In [5]:
import cv2
cap = cv2.VideoCapture('../MEDIA/video.mp4')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
#frame_resized = frame
#frame_resized = cv2.resize(frame, (400,500)) # 사이즈 변경
#frame_resized = cv2.resize(frame, None, fx = 1.5, fy = 1.5, interpolation = cv2.INTER_CUBIC) # 비율 확대, 보간법
frame_resized = cv2.resize(frame, None, fx = 0.5, fy = 0.5, interpolation = cv2.INTER_AREA) # 비율 축소, 보간법
cv2.imshow('video', frame_resized)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()