OpenCV

    [OpenCV with Python] 영상 기하학적 변환 : 투시 변환

    [OpenCV with Python] 영상 기하학적 변환 : 투시 변환

    투시 변환 - Perspective transform 어파인 변환보다 자유도가 높은 것이 투시변환이다. 직사각형보다 자유도가 높은 사다리꼴, 임의의 사각형으로 표현할 수 있다. 투시변환을 표현하는 행렬은 3X3 행렬이며, 이 중 하나는 비례상수 역할을 하기 때문에 실제 미지수는 8개가 된다. 투시 변환은 8개 미지수를 계산하기 위해 식 8개가 필요하며, 점 4개가 어떻게 이동했는지 알고 있어야 한다. ✔︎ 투시 변환 행렬 구하기 - cv2.getPerspectiveTransform retval = cv2.getPerspectiveTransform(src, dst, solveMethod=None) src: 4개의 원본 좌표점. numpy.ndarray. shape=(4, 2) e.g) np.array([[..

    [OpenCV with Python] 영상 기하학적 변환 : 어파인 변환

    [OpenCV with Python] 영상 기하학적 변환 : 어파인 변환

    어파인 변환 - Affine Transform 어파인 변환은 영상의 이동, 전단, 확대, 회전을 조합할 때 직사각형이 평행사변형으로 변화한다. 어파인 변환을 표현하는 방법은 2 X 3 행렬의 실수형에 회전, 크기, 이동 정보가 들어가 있다. 어파인 변환은 미지수가 6개이기 때문에 6개의 식이 필요하며 점 3개가 어디로 이동했는지 알면 행렬로 표시할 수 있다. 점 세개의 이동정보를 알면 어파인 행렬로 표시가 가능하며, 세개의 이동정보로 마지막 점의 위치를 유추할 수 있다. ✔︎ 어파인 변환 행렬 - cv2.getAffineTransform retval = cv2.getAffineTransform(src, dst) src: 3개의 원본 좌표점. numpy.ndarray. shape=(3, 2) e.g) np..

    [OpenCV with Python]  영상 기하학적 변환 : 영상의 회전 - cv2.getRotationMatrix2D

    [OpenCV with Python] 영상 기하학적 변환 : 영상의 회전 - cv2.getRotationMatrix2D

    회전 변환 Rotation transformation 영상을 특정 각도만큼 회전시키는 변환이다. (반시계 방향으로 회전) 반시계 방향으로 세타만큼 회전시킬 때 sin, cos 함수로 표현할 수 있다. affine 행렬을 생성하고 affwrap 함수를 이용하여 간단히 회전 할 수 있다. 회전 변환을 위한 Affine 행렬을 생성하는 방법은 두 가지가 있다. 1. 영상의 좌측 상단 기준 회전 np.array로 Affine 행렬을 생성하고, 생성한 Affine 행렬을 warpAffine 함수의 입력 인자로 입력해준다. src = cv2.imread('tekapo.bmp') if src is None: print('Image load failed!') sys.exit() rad = 20 * math.pi / 1..

    [OpenCV with Python] 영상 기하학적 변환 : 이미지 피라미드

    [OpenCV with Python] 영상 기하학적 변환 : 이미지 피라미드

    이미지 피라미드 - Image pyramid 이미지 피라미드는 하나의 영상에 대해 다양한 해상도의 영상 세트를 구성한 것이다. 영상의 크기를 가로, 세로 반을 줄이거나 반을 키워서 다양한 크기의 영상을 생성한다. 보통가우시안 블러링 & 다운 샘플링 형태로 축소하여 구성한다. 이미지 피라미드를 통해 작은 크기 영상을 만드는 이유는 다음과 같다. 입력 영상에서 어떠한 객체를 찾고 싶을 때 영상에 존재하는 객체의 크기가 다양하다. 고양이 얼굴 크기를 지정해두고 영상에서 고양이 얼굴을 찾고 싶을 때, 지정한 고양이 얼굴 크기보다 작거나 크면 못 찾을 가능성이 있으므로, 다양한 이미지 크기를 만든다. 영상의 다운샘플링은 가우시안 블러링을 적용하고 축소하여 출력 영상에 자연스러운 형태나 부드러운 형태를 갖게 한다...