OpenCV 图像旋转

在OpenCV中图像旋转首先根据旋转角度和旋转中心获取旋转矩阵,然后根据旋转矩阵进行变换,即可实现任意角度和任意中心的旋转效果。

 cv2.getRotationMatrix2D(center, angle, scale)
  • center:旋转中心
  • angle:旋转角度
  • scale:缩放比例

M:旋转矩阵

调用cv.warpAffine完成图像的旋转

import cv2 as cv
import matplotlib.pyplot as plt

# 1 读取图像
img = cv.imread("1.png")

# 2 图像旋转
rows, cols = img.shape[:2]

# 2.1 生成旋转矩阵
M = cv.getRotationMatrix2D((cols/2, rows/2), 90, 1)  # 以图形的正中心作为旋转中心,旋转90°

# 2.2 进行旋转变换
dst1 = cv.warpAffine(img, M, (cols, rows))

M = cv.getRotationMatrix2D((cols/2, rows/2), 45, 0.5) # 旋转45°,缩小为原图的二分之一
dst2 = cv.warpAffine(img, M, (cols, rows))  # 调用warpAffine()函数完成图片旋转

# 3 图像展示
fig,axes=plt.subplots(nrows=1, ncols=3, figsize=(10, 8), dpi=100)
axes[0].imshow(img[:, :, ::-1])
axes[0].set_title("原图")
axes[1].imshow(dst1[:, :, ::-1])
axes[1].set_title("旋转后90°结果")
axes[2].imshow(dst2[:, :, ::-1])
axes[2].set_title("旋转后45°结果")
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值