如何在OpenCV Python中旋转图像?
OpenCV提供了函数 cv.rotate() 以90度的倍数旋转图像(numpy数组)。该函数可以以三种可能的方式使图像旋转:90度,180度和270度顺时针旋转。以下是语法∶
语法
cv2.rotate(img, rotateCode)
rotateCode 是一个旋转标志,指定如何旋转数组。三个旋转标志如下∶
- cv2.ROTATE_90_CLOCKWISE
-
cv2.ROTATE_180
-
cv2.ROTATE_90_COUNTERCLOCKWISE
步骤
要旋转输入图像,可以按照以下步骤进行∶
- 导入所需的库 OpenCV 和 matplotlib 。确保您已经安装它们。
-
使用 cv2.imread() 方法读取输入图像。指定图像的完整路径。
-
使用 cv2.rotate() 函数旋转输入图像。将所需的rotateCode作为参数传递给函数。我们可以传递 cv2.ROTATE_180、cv2.ROTATE_90_CLOCKWISE 或 cv2.ROTATE_90_COUNTERCLOCKWISE 作为参数。
-
显示旋转后的图像。
让我们看一下旋转输入图像的示例。
输入图片
我们将在以下示例中使用以下图像作为输入文件∶
示例
在此示例中,我们将输入图像逆时针旋转180度。
# 导入所需的库
import cv2
# 加载输入图像
img = cv2.imread('leaf.jpg')
# 将图像逆时针旋转180度
img_cw_180 = cv2.rotate(img, cv2.ROTATE_180)
# 显示旋转后的图像
cv2.imshow("Image rotated by 180 degree", img_cw_180)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果
当您执行上述程序时,它将生成以下输出窗口∶
注意,输入图像逆时针旋转180度。
让我们看一下OpenCV中提供的其他旋转。
示例
在此示例中,我们将演示如何将输入图像旋转90度、180度和270度。
# 导入必需的库
import cv2
import matplotlib.pyplot as plt
# 加载输入图像
img = cv2.imread('leaf.jpg')
# 将图像转换为灰度图像
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 将图像顺时针旋转90度
img_cw_90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
# 将图像顺时针旋转270度或逆时针旋转90度
img_ccw_90 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)
# 将图像顺时针旋转180度
img_cw_180 = cv2.rotate(img, cv2.ROTATE_180)
# 显示所有图像
plt.subplot(221), plt.imshow(img, 'gray'), plt.title('原始图像
'), plt.axis('off')
plt.subplot(222), plt.imshow(img_cw_90,'gray'), plt.title('90
度顺时针旋转)'), plt.axis('off')
plt.subplot(223), plt.imshow(img_cw_180, 'gray'),
plt.title('180度旋转'), plt.axis('off')
plt.subplot(224), plt.imshow(img_ccw_90, 'gray'),
plt.title('270度顺时针旋转/90度逆时针旋转'), plt.axis('off')
plt.show()
输出
上述程序执行后,将产生以下输出窗口 ─