【OpenCV 例程200篇】28. 图像的旋转(直角旋转)cv2.rotate

『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程200篇】28. 图像的旋转(直角旋转)


旋转角度为 90,180,270 度时,可以用 cv2.rotate(src, rotateCode) 函数实现,该方法实际上是通过矩阵转置实现的,因此速度很快。

函数说明:

 cv2.rotate( src, rotateCode[, dst] ) → M

参数说明:

  • src:变换操作的输入图像
  • rotateCode:枚举,指定旋转角度。
    • cv2.ROTATE_90_CLOCKWISE:顺时针旋转 90 度
    • cv2.ROTATE_180: 旋转 180 度
    • cv2.ROTATE_90_COUNTERCLOCKWISE:逆时针旋转 90 度
  • 返回值:dst,变换操作的输出图像,ndarray 多维数组

扩展例程:1.37 图像的直角旋转

当旋转角度为 90,180,270 度时,可以用图像旋转函数 cv2.rotate(src, rotateCode) 实现,该方法通过矩阵转置实现,速度很快。此外,numpy 中也提供了旋转矩阵的方法 np.rot90 可以按 90 度的整数倍进行旋转。

    # 1.37 图像的直角旋转 (90, 180, 270)
    # cv2.rotate(src, rotateCode)
    # rotateCode: cv2.ROTATE_90_CLOCKWISE, 顺时针旋转90度
    #             cv2.ROTATE_180, 顺时针旋转180度
    #             cv2.ROTATE_90_COUNTERCLOCKWISE, 顺时针旋转270度

    img = cv2.imread("../images/imgLena.tif")  # 读取彩色图像(BGR)

    imgR90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
    imgR180 = cv2.rotate(img, cv2.ROTATE_180)
    imgR270 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)

    # imgR90 = np.rot90(img, 1)  # numpy 矩阵旋转 90*1=90 度
    # imgR180 = np.rot90(img, 2)  # numpy 矩阵旋转 90*2=180 度
    # imgR270 = np.rot90(img, 3)  # numpy 矩阵旋转 90*3=270 度

    plt.figure(figsize=(9,7))
    plt.subplot(221), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title(r"$Origin$")
    plt.subplot(222), plt.imshow(cv2.cvtColor(imgR90, cv2.COLOR_BGR2RGB)), plt.title(r"$Rotation 90^{o}$")
    plt.subplot(223), plt.imshow(cv2.cvtColor(imgR180, cv2.COLOR_BGR2RGB)), plt.title(r"$Rotation 180^{o}$")
    plt.subplot(224), plt.imshow(cv2.cvtColor(imgR270, cv2.COLOR_BGR2RGB)), plt.title(r"$Rotation 270^{o}$")
    plt.show()

在这里插入图片描述


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18

【第3章:图像的几何变换】

26. 图像的旋转(以原点为中心)
27. 图像的旋转(以任意点为中心)
28. 图像的旋转(直角旋转)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youcans_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值