Python OpenCV 강좌 : 제 6강 - 회전

Python OpenCV Rotate

Python OpenCV 강좌 : 제 6강 - 회전
[ Python-OpenCV ] - 윤대희

회전 (Rotate)


1

회전(Rotate)은 선형 변환 중 하나에 포함되며, 회전 변환 행렬(Rotation matrix)을 통해 변환이 진행됩니다.

회전 변환 행렬은 임의의 점을 중심으로 물체를 회전시킵니다. 회전 변환 행렬의 일부는 반사 행렬(Reflection matrix)과 같은 값을 지닐 수 있습니다.

2차원 유클리드 공간에서의 회전은 크게 두 가지 회전 행렬을 갖습니다. 좌푯값을 회전시키는 회전 행렬좌표 축을 회전시키는 회전 행렬이 있습니다.

좌표 회전 행렬은 원점을 중심으로 좌푯값을 회전시켜 매핑하며, 좌표 축 회전 행렬은 원점을 중심으로 행렬 자체를 회전시켜 새로운 행렬의 값을 구성합니다.

OpenCV의 회전 함수는 좌표 축의 회전 이동 행렬과 동일한 형태이며, 비율을 조정하거나 중심점의 기준을 변경하여 회전할 수 있습니다.



Main Code


import cv2

src = cv2.imread("Image/ara.jpg", cv2.IMREAD_COLOR)

height, width, channel = src.shape
matrix = cv2.getRotationMatrix2D((width/2, height/2), 90, 1)
dst = cv2.warpAffine(src, matrix, (width, height))

cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()



Detailed Code


src = cv2.imread("Image/ara.jpg", cv2.IMREAD_COLOR)

이미지 입력 함수(cv2.imread)를 통해 원본 이미지로 사용할 src를 선언하고 로컬 경로에서 이미지 파일을 읽어 옵니다.



height, width, channel = src.shape

height, width, channel = src.shape를 이용하여 해당 이미지의 높이, 너비, 채널의 값을 저장합니다.

높이너비를 이용하여 회전 중심점을 설정합니다.



matrix = cv2.getRotationMatrix2D((width/2, height/2), 90, 1)

2×3 회전 행렬 생성 함수(cv2.getRotationMatrix2D)로 회전 변환 행렬을 계산합니다.

matrix = cv2.getRotationMatrix2D(center, angle, scale)중심점(center), 각도(angle), 비율(scale)매핑 변환 행렬(matrix)을 생성합니다.

중심점(center)튜플(Tuple) 형태로 사용하며 회전의 기준점을 설정합니다.

각도(angle)는 중심점을 기준으로 회전할 각도를 설정합니다.

비율(scale)은 이미지의 확대 및 축소 비율을 설정합니다.



dst = cv2.warpAffine(src, matrix, (width, height))

아핀 변환 함수(cv2.warpAffine)로 회전 변환을 계산합니다.

dst = cv2.warpAffine(src, M, dsize)원본 이미지(src)M(아핀 맵 행렬)을 적용하고 출력 이미지 크기(dsize)로 변형해서 출력 이미지(dst)를 반환합니다.

아핀 맵 행렬(M)은 회전 행렬 생성 함수에서 반환된 매핑 변환 행렬을 사용합니다.

출력 이미지 크기(dsize)튜플(Tuple) 형태로 사용하며 출력 이미지의 너비와 높이를 의미합니다.

아핀 맵 행렬에 따라 회전된 이미지를 반환합니다.



Result


2



Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Python OpenCV 강좌 : 제 5강 - 대칭 ⤧  Next post Python OpenCV 강좌 : 제 7강 - 확대 & 축소
    Python-OpenCV Category