如何在OpenCV Python中旋转图像?

如何在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

步骤

要旋转输入图像,可以按照以下步骤进行∶

  • 导入所需的库 OpenCVmatplotlib 。确保您已经安装它们。

  • 使用 cv2.imread() 方法读取输入图像。指定图像的完整路径。

  • 使用 cv2.rotate() 函数旋转输入图像。将所需的rotateCode作为参数传递给函数。我们可以传递 cv2.ROTATE_180、cv2.ROTATE_90_CLOCKWISEcv2.ROTATE_90_COUNTERCLOCKWISE 作为参数。

  • 显示旋转后的图像。

让我们看一下旋转输入图像的示例。

输入图片

我们将在以下示例中使用以下图像作为输入文件∶

如何在OpenCV Python中旋转图像?

示例

在此示例中,我们将输入图像逆时针旋转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()

输出结果

当您执行上述程序时,它将生成以下输出窗口∶

如何在OpenCV Python中旋转图像?

注意,输入图像逆时针旋转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()

输出

上述程序执行后,将产生以下输出窗口 ─

如何在OpenCV Python中旋转图像?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV