- 크기 변환 (Scale transformation)
- 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환
- x축과 y축 방향으로의 스케일 비율(scale factor)을 지정
- 영상의 크기 변환
cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) -> dst
• src: 입력 영상
• dsize : 결과 영상 크기 . (w, h) 튜플 . (0,0) 이면 fx 와 fy 값을 이용하여 결정
• dst: 출력 영상
• fx , fy : x 와 y 방향 스케일 비율 (scale factor). dsize 값이 0 일 때 유효
• interpolation: 보간법 지정 . 기본값은 cv2.INTER_LINEAR
- 영상의 크기 변환 예제
import sys
import numpy as np
import cv2
src = cv2.imread('rose.bmp') # src.shape=(320, 480) == # 480 x 320
if src is None:
print('Image load failed!')
sys.exit()
dst1=cv2.resize(src,(0,0),fx=4,fy=4,interpolation=cv2.INTER_NEAREST)
dst2=cv2.resize(src,(1920,1280))
dst3=cv2.resize(src,(1920,1280),interpolation=cv2.INTER_CUBIC) #1,2번 보다 품질이 좋다, 시간이 좀 걸림
dst4=cv2.resize(src,(1920,1280),interpolation=cv2.INTER_LANCZOS4) #시간이 많이 걸림, 품질 좋음
cv2.imshow('src',src)
cv2.imshow('dst1',dst1[500:900,400:800]) #사이즈 조절
cv2.imshow('dst2',dst2[500:900,400:800])
cv2.imshow('dst3',dst3[500:900,400:800])
cv2.imshow('dst4',dst4[500:900,400:800])
cv2.waitKey()
cv2.destroyAllWindows()
- 영상의 축소 시 고려할 사항
- 영상 축소 시 디테일이 사라지는 경우가 발생 (한 픽셀로 구성된 성분)
- 입력 영상을 부드럽게 필터링한 후 축소, 다단계 축소
- opneCV의 cv2.resize() 함수에서는 cv2.INTER_AREA 플래그를 사용\
- 영상의 대칭 변환 (flip, reflection)
cv2.flip(src,flipCode,dst=None) -> dst
'Computer Vision > opencv(python)' 카테고리의 다른 글
[30] 4) 영상의 회전 (0) | 2021.03.21 |
---|---|
[29] 3) 이미지 피라미드 (0) | 2021.03.21 |
[27] 5.기하학적 변환 1)영상의 이동 변환과 전단 변환 (0) | 2021.03.20 |
[26] 6) 잡음제거 - 양방향 필터 (0) | 2021.03.19 |
[25] 5) 잡음제거 - 미디언 필터 (0) | 2021.03.19 |