如何在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
步骤
要旋转输入图像,您可以按照以下步骤操作:
导入所需的库OpenCV和matplotlib。确保您已安装它们。
使用cv2.imread()方法读取输入图像。指定图像的完整路径。
使用cv2.rotate()函数旋转输入图像。将所需的rotateCode作为参数传递给函数。我们可以传递cv2.ROTATE_180、cv2.ROTATE_90_CLOCKWISE或cv2.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()
输出
执行上述程序后,将生成以下输出窗口:
广告