python图形化转换_Python图形化界面入门教程 - Python下利用OpenCV进行图像旋转

原标题: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被传递,那么无限等待下去,直到有按键按下。

现在运行完整的代码,结果如下。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值