OpenCv图像基本变换

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

目录

一、图像翻转

二、图像旋转

三、仿射变换之平移

四、仿射变换之获取变换矩阵

五、仿射变换之透视变换


一、图像翻转

图像翻转不等同于旋转,类似于一些视频的拍摄,拍摄后实际是左右颠倒的,通过图像翻转可进行还原

案例代码如下:

# 图片翻转
filpCode = 0表示上下翻转
flipCode > 0表示左右翻转
flipCOde < 0表示上下+左右翻转
new_first = cv2.flip(first,flipCode=-1)

二、图像旋转

函数原型:

rotate(img,rotateCode)

案例代码如下:

# 图片旋转
ROTATE_90_CLOCKWISE 90度顺时针
ROTATE_180 180度
ROTATE_90_COUNTERCLOCKWISE 90度逆时针

new_first = cv2.rotate(first,rotateCode= cv2.ROTATE_90_COUNTERCLOCKWISE)
# 展示图片
cv2.imshow('first',new_first)

三、仿射变换之平移

函数原型:

warpAffine(src,M,dsize,flags,mode,value)

  • M:变换矩阵
  • dsize:输出尺寸大小
  • flags:与size中的插值算法一致
  • mode:边界外推法标志
  • value:填充边界的值

案例代码如下:

# 读取图片
first = cv2.imread('5.jpg')

h,w,ch = first.shape

# 右移200个单位
# 变换矩阵(最少为float32位)
M = np.float([[1,0,200],[0,1,0]])

# 平移操作
# 注意opencv中先宽度,后高度
new_first = cv2.warpAffine(first,M,dsize=(w,h))

cv2.imshow('new_first',new_first)

四、仿射变换之获取变换矩阵

获取变换矩阵M的两种方法:

1、getRotationMatrix2D(center,angle,scale)

  • center:中心点
  • angle:旋转角度(逆时针)
  • scale:缩放比例(宽高同时缩放)

案例代码如下: 

h,w,ch = first.shape
# 获取变换矩阵(注意旋转角度为逆时针)
# M = cv2.getRotationMatrix2D((100,100),15,1.0)

# 以图像中心点旋转
M = cv2.getRotationMatrix2D((w/2,h/2),15,1.0)

new_first = cv2.warpAffine(first,M,(w,h))

2、getAffineTransform(src[],dst[])

定义:通过点对应找到变换矩阵,一般三个点就可以; 

拓展:这里可以联想到TPS算法,也是通过对应点进行变换的一种方法,二者可能有想通之处;

案例代码如下:

h,w,ch = first.shape

src = np.float32([[200,100],[300,100],[200,300]])
dst = np.float32([[100,150],[360,200],[280,120]])

# 通过三个点来确定变换矩阵
M = cv2.getAffineTransform(src,dst)
new_first = cv2.warpAffine(first,M,(w,h))

五、仿射变换之透视变换

这里用一个具体案例来介绍,例如拍照搜题的软件,当拍摄整页时会有一种书本和桌面组合的样子,经过透视变换后能更好的将想要的信息放在图像中;

仿射变换函数原型:

warpPerspective(img,M,dsize,…)

获取变换矩阵函数原型:

getPerspective(src,dst):和getAffineTransform函数比较类似,不同的是需要四个坐标点(图形四个角);
案例代码如下:

# 获取变换矩阵
# src是原图的四个坐标
# dst
src = np.float32([[100,1100],[210,110],[0,4000],[2500,3900]])
dst = np.float32([[0,0],[2300,0],[0,3000],[2500,3000]])

M = cv2.getPerspectiveTransform(src,dst)

# 透视变换
new_img = cv2.warpPerspective(img,M,(2300,3000))

cv2.imshow('new_img',new_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

OpenCv图像基本变换,Opencv,opencv,人工智能,计算机视觉

 文章来源地址https://www.toymoban.com/news/detail-573484.html

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

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

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

相关文章

  • 【OpenCV • c++】图像几何变换 | 图像仿射变换

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月16日
    浏览(30)
  • OpenCV图像变换操作

    图像缩放: 按比例缩放: 图像翻转: 沿X轴翻转: 沿Y轴翻转: 同时沿X轴、Y轴翻转: 图像旋转:

    2024年01月23日
    浏览(21)
  • (opencv)图像几何变换——平移

    图像的平移操作是将图像的所有像素坐标进行水平或垂直方向移动,也就是将所有像素点按照给定的偏移量在水平方向沿x轴、垂直方向上沿y轴移动。平移变换分为两种类型:图像大小变化与图像大小不变。第一种类型保证图像平移的完整信息,第二种图像导致原始图像的部

    2024年02月08日
    浏览(33)
  • 【opencv】:图像的透视变换

    仿射变换(Affine Transformation或 Affine Map) , 又称为仿射映射, 是指在几何中, 图像进行从一个向量空间进行一次线性变换和一次平移, 变换为到另一个向量空间的过程。我们常说的仿射变换是透视变换的一个特例。 以上便是透视变换的原理图,即将源图像通过投影映射,

    2024年02月15日
    浏览(32)
  • OpenCV(图像颜色空间变换)

    目录 1、分类 1.1 RGB颜色模型  1.2 HSV颜色模型 1.3 GRAY颜色模型 2、图像数据类型间的相互转换  3 、颜色转换函数 RGBHSVGRAY颜色模型。 1.1 RGB颜色模型  1.2 HSV颜色模型 1.3 GRAY颜色模型 第四个参数使用例子:有一图像通道数为5,只需要用到前3个通道,就可以设置通道数为3  使

    2024年02月12日
    浏览(39)
  • (opencv)图像几何变换——缩放

    图像缩放是指将图像的尺寸变小或变大的过程,也就是减少或增加源图像数据的像素个数。图像缩放一定程度上会造成信息的丢失,因此需要考虑适宜的方法进行操作。 下面介绍两种常用的图像缩放方法的原理及实现 1.基于等间隔提取图像缩放 等间隔提取图像缩放是通过对

    2024年02月16日
    浏览(27)
  • OpenCV(十一):图像仿射变换

    目录 1.图像仿射变换介绍  仿射变换: 仿射变换矩阵: 仿射变换公式: 2.仿射变换函数 仿射变换函数:warpAffine() 图像旋转:getRotationMatrix2D() 计算仿射变换矩阵:getAffineTransform()  3.demo 1.图像仿射变换介绍  仿射变换:        仿射变换是由平移、缩放、旋转、翻转和错切组

    2024年02月10日
    浏览(37)
  • 【OpenCV • c++】图像几何变换 | 图像旋转

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪   图像的几何变换是指在不改变图像像素值的前提下对图像像素进

    2024年02月16日
    浏览(31)
  • 【OpenCV • c++】图像几何变换 | 图像缩放

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月16日
    浏览(42)
  • 【OpenCV • c++】图像几何变换 | 图像平移

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月16日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包