python中图像旋转角度代码分析

原图
在这里插入图片描述
旋转-30°
在这里插入图片描述
旋转5°
在这里插入图片描述
源代码如下:

import cv2
import numpy as np

def rotate_bound(image, angle):
    # 获取图像的尺寸,然后确定中心
    (h, w) = image.shape[:2]
    (cX, cY) = (w // 2, h // 2)

    # 获取旋转矩阵(应用
    #角度顺时针旋转),然后抓住正弦和余弦
    #(即矩阵的旋转分量)
    M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)
    cos = np.abs(M[0, 0])
    sin = np.abs(M[0, 1])

    # 计算图像新的边界尺寸
    nW = int((h * sin) + (w * cos))
    nH = int((h * cos) + (w * sin))

    # adjust the rotation matrix to take into account translation
    M[0, 2] += (nW / 2) - cX

    M[1, 2] += (nH / 2) - cY

    # 调整旋转矩阵以考虑平移
    return cv2.warpAffine(image, M, (nW, nH))


if __name__ == "__main__":
    img = cv2.imread(r"C:\Users\lqm\Documents\3DPrinter\Image\DImg_1.jpg")
    img = rotate_bound(img, -180)
    hImg = cv2.flip(img, 1)
    vImg = cv2.flip(img, 0)
    cv2.imwrite(r"C:\Users\lqm\Documents\3DPrinter\Image\h_3_1.jpg", hImg)
    cv2.imwrite(r"C:\Users\lqm\Documents\3DPrinter\Image\v_3_1.jpg", vImg)
    cv2.imwrite(r"C:\Users\lqm\Documents\3DPrinter\Image\3_1.jpg", img)
    # cv2.imshow("img", img)
    # cv2.waitKey()

有问题的小伙伴可以留言哟!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值