OpenCV
[OpenCV with Python] 영상 기하학적 변환 : 영상의 대칭 변환 - cv2.flip
영상의 대칭 변환 - cv2.flip 영상의 대칭 변환은 크기 변환과 이동 변환으로 구현할 수 있다. ✔︎ cv2.flip 함수 dst = cv2.flip(src, flipCode, dst=None) src: 입력 영상 flipCode: 대칭 방향 지정 dst: 출력 영상 💬 실습 import sys import numpy as np import cv2 src = cv2.imread('rose.bmp') # src.shape=(320, 480) if src is None: print('Image load failed!') sys.exit() dst = cv2.flip(src, -1) # 상하 좌우 대칭 cv2.imshow('src', src) cv2.imshow('dst', dst) cv2.waitKey..
[OpenCV with Python] 영상 기하학적 변환 : 영상의 확대와 축소 - 크기 변환 cv2.resize
크기 변환(Scale transformation) 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환 x축과 y축방향 으로의 스케일비율(scalefactor)를 지정 ✔︎ cv2.resize 함수 dst = cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None) src: 입력 영상 dsize: 결과 영상 크기. (w, h) 튜플. (0, 0)이면 fx와 fy 값을 이용하여 결정. dst: 출력 영상 fx, fy: x와 y방향 스케일 비율(scale factor). (dsize 값이 0일 때 유효) interpolation: 보간법 지정. 기본값은 cv2.INTER_LINEAR resize 함수는 출력 영상 크기를 픽셀 단위로 설..
[OpenCV with Python] 영상 기하학적 변환 : 전단 변환 - cv2.warpAffine
영상의 전단 변환 - Shear transformation 영상의 전단 변환은 층 밀림 변환이라고도 한다. 이동을 하는데 모든 픽셀들이 동일하게 이동하는 것이 아니라 어떤 픽셀은 조금 이동하고 어떤 픽셀은 많이 이동하여 한쪽을 찌그러뜨리는 효과를 낸다. 전단 변환도 이동 변환과 마찬가지로 어파인 행렬을 만들어야 한다. 이동 변환에서는 단위 행렬을 어파인 행렬로 생성했지만, 전단 변환은 m 상수도 필요하다. 전단 변환을 한 만큼 영상이 밀려나가게 되어 영상이 짤리게 된다. 이를 해결하기 위해 밀린 만큼 출력 영상의 크기를 키워주면 된다. ✔︎ cv2.warpAffine 함수 dst = cv2.warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None,..
[OpenCV with Python] 영상 기하학적 변환 : 이동 변환 - cv2.warpAffine
영상의 기하학적 변환(geometric transformation)이란? 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업 Image registration, removal of geometric distortion, etc. ❓ 기하학적 변환이 필요한 이유 입력 영상 크기가 제한되어 있어 영상 크기를 축소해야 하는 경우 객체가 영상의 정중앙에 있어야 하는 경우 회전이 되어 있는 영상을 똑바로 보정 이 외에도 여러가지 상황에서 영상의 기하학적 변환이 필요하다. 1. 영상의 이동 변환 - Translation transformation 이동 변환은 shift라는 용어도 많이 쓴다. 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환이다. x, y 방향으로 어느 정도..