파이썬과 OpenCV를 사용한 이미지 회전 및 이동 변환하기

이미지 처리에서 회전과 이동은 중요한 변환 기술입니다. 파이썬과 OpenCV를 사용하면 간단하게 이미지를 회전시키고 이동시킬 수 있습니다. 이번 블로그 포스트에서는 파이썬과 OpenCV를 사용하여 이미지를 회전 및 이동하는 방법에 대해 알아보겠습니다.

1. 이미지 회전하기

import cv2
import numpy as np

# 이미지 불러오기
image = cv2.imread('image.jpg')

# 회전 중심점 계산
height, width = image.shape[:2]
center = (width / 2, height / 2)

# 회전 각도 설정
angle = 45

# 회전 변환 행렬 계산
rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1)

# 이미지 회전
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))

# 결과 이미지 출력
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드는 이미지를 45도 회전하는 예제입니다. cv2.getRotationMatrix2D 함수를 사용하여 회전 변환 행렬을 계산하고, cv2.warpAffine 함수로 이미지를 회전시킵니다. cv2.imshow 함수를 통해 결과 이미지를 출력합니다.

2. 이미지 이동하기

import cv2
import numpy as np

# 이미지 불러오기
image = cv2.imread('image.jpg')

# 이동할 픽셀 수 설정
x_shift = 100
y_shift = 50

# 이동 변환 행렬 계산
translation_matrix = np.float32([[1, 0, x_shift], [0, 1, y_shift]])

# 이미지 이동
translated_image = cv2.warpAffine(image, translation_matrix, (image.shape[1], image.shape[0]))

# 결과 이미지 출력
cv2.imshow('Translated Image', translated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드는 이미지를 x축 방향으로 100 픽셀, y축 방향으로 50 픽셀 이동시키는 예제입니다. np.float32 형식의 이동 변환 행렬을 계산하고, cv2.warpAffine 함수로 이미지를 이동시킵니다.

이상으로 파이썬과 OpenCV를 사용하여 이미지를 회전 및 이동하는 방법에 대해 알아보았습니다. 이러한 이미지 변환 기술을 응용하여 다양한 이미지 처리 작업을 수행할 수 있습니다.

References