[ Python OpenCV ] 이미지 회전 로테이션 - cv.getRotationMatrix2D
1. 이미지 불러오기
import cv2 as cv
# 이미지 경로
cvImage = cv.imread('/home/heojungwook/VSCode
/cat.jpeg')
# 이미지 보기
cv.imshow('OrgImg', cvImage)
2. 이미지 크기 및 색상 가져오기
# 이미지 크기 및 색상
nHeight, nWidth, nChannel = cvImage.shape
print('Height : ', nHeight)
print('Width : ', nWidth)
print('Channel : ', nChannel)
> Height : 490
> Width : 706
> Channel : 3
3. 회전 함수 및 적용 함수
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D((0, 0), 10, 0.5)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (0, 0))
cv.imshow('RotImg', cvRotaImage)
4. 중심점 가운데로 변경
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D(
(nWidth / 2, nHeight / 2), 10, 0.5)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (0, 0))
cv.imshow('RotImg', cvRotaImage)
5. 각도 음수로 적용
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D(
(nWidth / 2, nHeight / 2), -10, 0.5)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (0, 0))
cv.imshow('RotImg', cvRotaImage)
6. 비율 1대1 로 변경
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D(
(nWidth / 2, nHeight / 2), -10, 1)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (0, 0))
cv.imshow('RotImg', cvRotaImage)
7. 이미지 사이즈 변경
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D(
(nWidth / 2, nHeight / 2), -10, 1)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (800, 600))
cv.imshow('RotImg', cvRotaImage)
8. 전체 소스
import cv2 as cv
# 이미지 경로
cvImage = cv.imread('/home/heojungwook/VSCode/
cat.jpeg')
# 이미지 보기
cv.imshow('OrgImg', cvImage)
# 이미지 크기 및 색상
nHeight, nWidth, nChannel = cvImage.shape
print('Height : ', nHeight)
print('Width : ', nWidth)
print('Channel : ', nChannel)
# 회전 행렬 함수
# cv2.getRotationMatrix2D(중심점, 각도, 비율)
cvMatrix = cv.getRotationMatrix2D(
(nWidth / 2, nHeight / 2), -10, 1)
# 적용 계산 함수
# cv2.warpAffine(원본 이미지, 회전 함수, 화면 크기)
cvRotaImage = cv.warpAffine(
cvImage, cvMatrix, (800, 600))
cv.imshow('RotImg', cvRotaImage)
# 일시정지
cv.waitKey(0)
==========
댓글
댓글 쓰기