OpenCV旋转图像的几种方法

这篇具有很好参考价值的文章主要介绍了OpenCV旋转图像的几种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

cv2旋转图片,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文章来源地址https://www.toymoban.com/news/detail-620604.html

到了这里,关于OpenCV旋转图像的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv(4): cv2.imwrite()图像的保存

    语法格式:retval = cv2.imwrite(filename, image [, paras]) 参数说明: filename :代表文件名的字符串。文件名必须包含图像格式,例如.jpg,.png等。 image :图像数据矩阵 paras: 不同编码格式的参数,可选项 cv2.CV_IMWRITE_JPEG_QUALITY :设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95)

    2024年02月01日
    浏览(26)
  • opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

    方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内的像素值取平均,然后将这个平均值赋值给当前像素。这

    2024年02月14日
    浏览(33)
  • 【Opencv--自适应图像二值化】cv2.adaptiveThreshold()

    在这里 cv2.threshold函数 介绍了普通的opencv图像阈值处理函数。但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分割的方法并不能得到好的效果。 图像阈值化操作中,我们更关心的是从二值化图像中分离目标区域和背景区域,仅仅通过固定阈值很难达到理想

    2024年02月07日
    浏览(32)
  • opencv中调整图像显示框大小,cv2.namedWindow()

    如果要要调整cv2.imshow显示出来的窗口大小, 需要使用 cv2.namedWindow(‘窗口标题’, 默认参数) 参数 cv2.imshow(‘窗口标题’,image),如果前面没有cv2.namedWindow,就自动先执行一个cv2.namedWindow() 窗口默认cv2.WINDOW_AUTOSIZE namedWindow函数的作用是通过指定的名字,创建一个可以作为图像和

    2024年02月16日
    浏览(28)
  • Opencv之图像滤波:5.中值滤波(cv2.medianBlur)

            之前介绍的均值滤波、方框滤波、高斯滤波,都是线性滤波方式。由于线性滤波的结果是所有像素值的线性组合,因此含有噪声的像素也会被考虑进去,噪声不会被消除,而是以更柔和的方式存在。这时使用非线性滤波效果可能会更好。中值滤波与前面介绍的滤波

    2024年02月06日
    浏览(28)
  • OpenCV: 图像缩放(cv2.resize)【一分钟弄清楚】

    OpenCV: 图像缩放(cv2.resize)【一分钟弄清楚】 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~ 💡 创作高质量博文,分享更多关于深度学习、PyTorch、Python领域的优质

    2024年04月16日
    浏览(24)
  • opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()

    双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有效地去除噪声,同时保持图像的细节和边缘。

    2024年02月14日
    浏览(27)
  • opencv-25 图像几何变换04- 透视 cv2.warpPerspective()

    透视是一种几何学概念,用于描述在三维空间中观察物体时,由于视角的不同而产生的变形效果。在现实世界中,当我们从不同的角度或位置观察物体时,它们会呈现出不同的形状和大小。这种现象被称为透视效果。 透视效果主要由以下几个因素造成: 远近关系 :在视野范

    2024年02月15日
    浏览(35)
  • opencv-23 图像几何变换02-翻转-cv2.flip()

    在 OpenCV 中,图像的翻转采用函数 cv2.flip()实现 ,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为: 式中:  dst 代表和原始图像具有同样大小、类型的目标图像。  src 代表要处理的原始图像。  flipCode 代表旋转类型。该参数的意

    2024年02月15日
    浏览(31)
  • Opencv之图像滤波:6.双边滤波(cv2.bilateralFilter)

            前面我们介绍的滤波方法都会对图像造成模糊,使得边缘信息变弱或者消失,因此需要一种能够对图像边缘信息进行保留的滤波算法,双边滤波是综合考虑空间信息和色彩信息的滤波方式,在滤波过程中能够有效地保护 图像内的边缘信息。         之前介绍的

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包