OpenCV旋转图像的几种方法

该代码示例展示了如何使用OpenCV库对导入的图像进行旋转、翻转和仿射变换操作。首先,通过cv2.flip函数实现图像的翻转,然后使用cv2.rotate进行固定角度的旋转,最后应用cv2.warpAffine进行更复杂的旋转和缩放。这些方法有助于校正因摄像头角度不水平导致的图像倾斜问题。
摘要由CSDN通过智能技术生成

我们在工作中用摄像头去拍摄目标的时候,是没有办法保证这个摄像头肯定是水平的,所以拍下来的图像肯定是有点歪的。我们在用opencv导入图片的时候,首先要对这个图片进行旋转,把它调整到一个标准的位置。

import cv2
import matplotlib.pyplot as plt

src = cv2.imread('./resource/image_A.png')

'''
翻转
flip(src,flipCode) 0上下翻转,>0左右翻转,<0上下+左右
'''
flip_img=cv2.flip(src,flipCode=-1)

'''
旋转图像
rotate(img,rotateCode)
ROTATE_90_CLOCKWISE
ROTATE_180
ROTATE_90_COUNTERCLOCKWISE
'''
rotate_img=cv2.rotate(src,rotateCode=cv2.ROTATE_90_COUNTERCLOCKWISE)


'''
仿射变换
'''
rows,cols,channel = src.shape
# 绕图像的中心点旋转30度,正值表示逆时针旋转,并缩小到0.5
M = cv2.getRotationMatrix2D((cols/2,rows/2),angle=30,scale=0.5)
warpAffine_img = cv2.warpAffine(src,M=M,dsize=(cols,rows))


# 显示图像
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8), dpi=100)

axes[0][0].imshow(src[:,:,[2,1,0]])
axes[0][0].set_title("original")

axes[0][1].imshow(flip_img[:,:,[2,1,0]])
axes[0][1].set_title("flip_img")

axes[1][0].imshow(rotate_img[:,:,[2,1,0]])
axes[1][0].set_title("rotate_img")

axes[1][1].imshow(warpAffine_img[:,:,[2,1,0]])
axes[1][1].set_title("warpAffine_img")

plt.show()



参考链接:

OpenCV 101例_哔哩哔哩_bilibili

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人迈克猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值