- 영상의 기하학적 변환(geometric transformation) 이란?
- 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업
- image registration, removal of geometric distortion
- 이동 변환 (Translation transformation)
- 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환
- x축과 y축 방향으로의 이동 변위를 지정
- 영상의 어파인 변환 함수
cv2.warpAffine(src,M,dsize,dst=None,flags=None,borderMode=None,borderValue=None) -> dst
• src: 입력 영상
• M: 2x3 어파인 변환 행렬 . 실수형
• dsize : 결과 영상 크기 . (w, h) 튜플 . (0,0) 이면 src 와 같은 크기로 설정
• dst: 출력 영상
• flags: 보간법 . 기본값은 cv2.INTER_LINEAR.
• borderMode: 가장자리 픽셀 확장 방식 . 기본값은 cv2.BORDER_CONSTANT.
• borderValue: cv2.BORDER_CONSTANT 일 때 사용할 상수 값 . 기본값은 0.
- 영상의 이동 변환 예제
import sys
import numpy as np
import cv2
src = cv2.imread('tekapo.bmp')
if src is None:
print('Image load failed!')
sys.exit()
aff=np.array([[1,0,200],[0,1,100]],dtype=np.float32)
dst=cv2.warpAffine(src,aff,(0,0))
cv2.imshow('src',src)
cv2.imshow('dst',dst)
cv2.waitKey()
cv2.destroyAllWindows()
- 전단 변환 (Shear transformation)
- 층 밀림 변환, x축 y축 방향에 대해 따로 정의
- 영상의 전단 변환 예제
import sys
import numpy as np
import cv2
src = cv2.imread('tekapo.bmp')
if src is None:
print('Image load failed!')
sys.exit()
aff=np.array([[1,0.5,0],[0,1,0]],dtype=np.float32)
h,w=src.shape[:2]
dst=cv2.warpAffine(src,aff,(w+int(h*0.5),h))
cv2.imshow('dst',dst)
cv2.waitKey()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[29] 3) 이미지 피라미드 (0) | 2021.03.21 |
---|---|
[28] 2) 영상의 확대와 축소 (0) | 2021.03.20 |
[26] 6) 잡음제거 - 양방향 필터 (0) | 2021.03.19 |
[25] 5) 잡음제거 - 미디언 필터 (0) | 2021.03.19 |
[24] 4)샤프닝: 언샤프 마스크 필터 (0) | 2021.03.19 |