原标题:Python图形化界面入门教程 - Python下利用OpenCV进行图像旋转
来自: https://www.linuxmi.com/python-opencv-tuxiang-xuanzhuan.html
在这篇Python OpenCV文章中,我们将讨论OpenCV中的图像旋转,我们可以使用cv2.rotate函数在OpenCV中旋转图像,有三种常量类型的旋转可以作为参数在函数中传递。这些是Constants(常量)。
cv2.ROTATE_90_CLOCKWISE
cv2.ROTATE_90_COUNTERCLOCKWISE
cv2.ROTATE_180
这是Python中OpenCV图像旋转的完整源代码
importcv2
importmatplotlib.pyplot asplt
img = cv2.imread( 'lena.tif')
#我们的三个旋转
img_rotate_90_clockwise = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
img_rotate_90_counterclockwise = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)
img_rotate_180 = cv2.rotate(img, cv2.ROTATE_180)
#转换图像从bgr到rgb
original_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_clockwise = cv2.cvtColor(img_rotate_90_clockwise, cv2.COLOR_BGR2RGB)
img_counterclockwise = cv2.cvtColor(img_rotate_90_counterclockwise, cv2.COLOR_BGR2RGB)
img_180 = cv2.cvtColor(img_rotate_180, cv2.COLOR_BGR2RGB)
titles = [ "Original Image", "Image 90 Clockwise", "Image 90 CounterClockWise", "Image Rotate 180"]
images = [original_image, img_clockwise, img_counterclockwise,img_180 ]
fori inrange( 4):
plt.subplot( 2, 2, i+ 1)
plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([]), plt.yticks([])
plt.show
cv2.waitKey( 0)
cv2.destroyAllWindows
这行代码用于读取图像,请确保在工作目录中添加了图像。
img = cv2.imread( 'lena.tif')
在这里,我们使用了cv2.rotate函数,并添加了三种类型的旋转。
img_rotate_90_clockwise = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
img_rotate_90_counterclockwise = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)
img_rotate_180 = cv2.rotate(img, cv2.ROTATE_180)
因为我们要在Matplotlib中显示图像,所以Matplotlib使用RGB(红、绿、蓝)颜色系统,而OpenCV使用BGR(蓝、绿、红)颜色系统,所以我们需要将BGR颜色转换为RGB。如果我们不这样做,颜色就会变混乱。
original_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_clockwise = cv2.cvtColor(img_rotate_90_clockwise, cv2.COLOR_BGR2RGB)
img_counterclockwise = cv2.cvtColor(img_rotate_90_counterclockwise, cv2.COLOR_BGR2RGB)
img_180 = cv2.cvtColor(img_rotate_180, cv2.COLOR_BGR2RGB)
注意:cv2.waitKey是一个键盘绑定函数。它的参数是以毫秒为单位的时间。
该函数为任何键盘事件等待指定的毫秒。如果您在此时间内按下任何键,程序将继续。如果0被传递,那么无限等待下去,直到有按键按下。
现在运行完整的代码,结果如下。返回搜狐,查看更多
责任编辑: