5-1. 영상의 이동 변환과 전단 변환

기하학적 변환(Geometric Transformation)

    영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업

     Translation, Euclidean, similarity, affine, projective 등 다양한 방식이 있다.

     영상의 위치, 크기, 기울어짐 등을 보정할 수 있다.

 

이동 변환(Translation Transformation = Shift)

    영상을 가로(x) 또는 세로(y) 축 방향으로 특정 크기만큼 이동시키는 변환

     그래프적으로 표현한 이동 변환을 컴퓨터로 구현하기 위해 동차 좌표계(Homogeneous Coordinate)를 이용해 어파인(Affine) 변환 행렬을 찾아서 적용한다.

이동 변환 적용 원리 (출처:FastCampus)

전단 변환(Shear Transformation)

    영상을 가로(x) 또는 세로(y) 축 방향으로 특정 크기만큼 층을 밀어서 변환

     이동 변환에서 0 자리 값에 층이 밀릴 정도를 결정하게 된며, x축과 y축 방향에 대해 따로 정의한다.

전단 변환 적용 원리 (출처:FastCampus)

변환 함수(Affine 변환 사용)

    cv2.warpAffine(src, M, dsize, dst, flags, boarderMode, boarderValue) -> dst

     src는 입력 영상, dst는 출력 영상

     M은 2x3 어파인 변환 행렬로 실수형으로 제공 (행렬의 a와b만큼 각각 x 축과 y축만큼 밀리게 된다)

     dsize는 결과 영상의 크기로 (w,h) 튜플 형식으로 받는다. (0,0)이면 src와 동일한 크기로 설정

     flags는 보간법으로 기본값은 cv2.INTER_LINEAR (5-2에서 더 자세한 설명 참고)

     boarderMode는 가장자리 픽셀 확장 방식으로 기본값은 cv2.BORDER_CONSTANT

     boarderValue는 boarderMode가 cv2.BORDER_CONSTANT일때 사용할 상수 값으로 기본값은 0 (검정색)

 

Affine 행렬을 사용한 영상 이동 변환. 영상의 크기를 넘어가는 a,b 값을 줄 경우 영상과 같은 크기의 창에서는 사라진다
Affine 행렬을 사용한 영상 전단 변환 확인. (a)는 x 축 변환. (b)는 y축 변환. (c)는 모든 축 변환. (d)는 모든 축 전단 변환 + 이동 변환을 적용하였다


5-2. 영상의 확대와 축소

크기 변환(Sacle Transformation)

    영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환

     x축과 y축 방향으로의 스케일 비율(scale factor)로 조절

크기 변환 적용 원리 (출처:FastCampus)

    영상의 축소 시 픽셀 데이터를 잃어버려 디테일이 사라지는 경우가 발생

     입력 영상을 부드럽게 필터링한 후 축소 방식으로 다단계적 축소 방식 선택

 

    크기 변환 함수: cv2.resize(src, dsize, dst, fx, fy, interpolation) -> dst

     src는 입력 영상, dst는 출력 영상

     dsize는 출력 영상 크기로 (w,h) 튜플 형으로 제공. (0,0)으로 설정 하면 fx, fy 값에 의해 결정

     fx, fy는 각각 x와 y축 방향 스케일 비율 (dsize가 (0,0)일때만 유효)

     interpolation는 보간법 지정 플래그로 기본값은 cv2.INTER_LINEAR(가장 무난). 5가지 종류를 제공하는데 결과 영상 품질과 연산 시간을 고려하여 결정

interpolation 종류 비교 (출처: FastCampus)

 

대칭 변환(Reflection=Flip)

    영상의 중심점에서 그려진 x축과 y축 기준으로 대칭 변환

    대칭 변환 함수: cv2.flip(src, flipCode, dst) -> dst

     src는 입력 영상, dst는 출력 영상

     flipCode는 대칭 방향 지정 (양수: 좌우 대칭(y축) / 0: 상하 대칭(x축) / 음수: 좌우&상하 대칭)


인증 타임

이번 챕터에서는 다양한 영상 변환에 대해서 배우는 거 같다. 영상 편집 앱에서 흔히 사용하던 사이즈 조정이라던가 반전 이런 것들을 실제로 구현해보는 재미가 있을거 같다. 열심히 들어봐야지!

5-1. 공부 인증 사진
5-2. 공부 인증 사진

 


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

+ Recent posts