[ch05] 기하학적 변환 - 영상의 확대와 축소
크기 변환
- 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환
- 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
cv2.INTER_NEAREST
는 퀄리티가 낮아서 선호하지 않는다.cv2.INTER_LINEAR
가 속도와 성능 면에서 제일 무난하다.cv2.INTER_LANCZOS4
는 시간이 오래 걸리지만 퀄리티가 좋다.
영상의 크기 변환 예제
src = cv2.imread('rose.bmp')
dst1 = cv2.resize(src, (0, 0), fx=4, fy=4, interpolation=cv2.INTER_NEAREST)
dst2 = cv2.resize(src, (1920, 1280)) # default : cv2.INTER_LINEAR
dst3 = cv2.resize(src, (1920, 1280), interpolation=cv2.INTER_CUBIC)
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])
dst1을 제외하면 육안으로 변화를 구별하기 힘들어 보인다.
영상의 축소시 고려할 사항
- 영상 축소 시 디테일이 사라지는 경우가 발생
- ex) 한 픽셀로 구성된 선분
- 입력 영상을 부드럽게 필터링한 후 축소, 다단계 축소
- OpenCV의 cv2.resize() 함수에서는 cv2.INTER_AREA 플래그를 사용
영상의 대칭 변환 (flip, reflection)
영상의 대칭 변환 함수
cv2.flip(src, flipCode, dst=None) -> dst
- src : 입력 영상
- flipCode : 대칭 방향 지정
- dst : 출력 영상
Author And Source
이 문제에 관하여([ch05] 기하학적 변환 - 영상의 확대와 축소), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@redorangeyellowy/ch05-기하학적-변환-영상의-확대와-축소저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)