如何在OpenCV Python中旋转图像?


OpenCV 提供了函数 cv.rotate() 用于旋转图像(NumPy数组),旋转角度为90度的倍数。此函数可以以三种方式旋转图像:顺时针旋转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_180cv2.ROTATE_90_CLOCKWISEcv2.ROTATE_90_COUNTERCLOCKWISE作为参数。

  • 显示旋转后的图像。

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

输入图像

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

示例

在此示例中,我们将输入图像顺时针旋转180度。

# import required libraries import cv2 # load the input image img = cv2.imread('leaf.jpg') # rotate the image by 180 degree clockwise img_cw_180 = cv2.rotate(img, cv2.ROTATE_180) # display the rotated image cv2.imshow("Image rotated by 180 degree", img_cw_180) cv2.waitKey(0) cv2.destroyAllWindows()

输出

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

请注意,输入图像顺时针旋转了180度。

让我们看看OpenCV中可用的其他旋转方式。

示例

在此示例中,我们将展示如何将输入图像旋转90、180和270度。

# import required libraries import cv2 import matplotlib.pyplot as plt # load the input image img = cv2.imread('leaf.jpg') # convert the image to grayscale img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # rotate the image by 90 degree clockwise img_cw_90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) # rotate the image by 270 degree clockwise or 90 degree counterclockwise img_ccw_90 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE) # rotate the image by 180 degree clockwise img_cw_180 = cv2.rotate(img, cv2.ROTATE_180) # display all the images plt.subplot(221), plt.imshow(img, 'gray'), plt.title('Original Image'), plt.axis('off') plt.subplot(222), plt.imshow(img_cw_90,'gray'), plt.title('(90 degree clockwise)'), plt.axis('off') plt.subplot(223), plt.imshow(img_cw_180, 'gray'), plt.title('180 degree'), plt.axis('off') plt.subplot(224), plt.imshow(img_ccw_90, 'gray'), plt.title('270 degree clockwise/\n 90 degree counter clockwise'), plt.axis('off') plt.show()

输出

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

更新于:2023年8月28日

29K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告