[ Python OpenCV ] 이미지 회전 로테이션 - cv.getRotationMatrix2D

[ 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)




댓글