『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. 图像的旋转(直角旋转)