当前位置: 首页 > web >正文

【CV】Opencv图像处理——①几何变换 (1)

1. 图像缩放

  1. API
cv2.resize(src,dsize # 绝对尺寸,直接指定调整后图像的大小fx=0, fy=0, # 相对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子即可(放大:设置为大于1的数;缩小:设置为小于1的数)interpolation = cv2.INTER_LINEAR)
  • interpolation:插值方法
插值含义
cv2.INTER_LINEAR双线性插值法
cv2.INTER_NEAREST最近邻插值
cv2.INTER_AREA像素区域重采样(默认)
cv2.INTER_CUBIC双三次插值

2. 图像平移

  1. API
cv.warpAffine(img, M, dsize)
  • M:2*3移动矩阵

对于(x, y)处的像素点,要把它移动到(x+tx,y+ty)(x + t_x, y + t_y)x+tx,y+ty处时,M矩阵应如下设置:
M=[10tx01ty ]M = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ ~ \end{bmatrix}M=10 01txty,注意需要将M设置为np.float32类型的Numpy数组

  • dsize:输出图像的大小

注意:输出图像的大小,它应该是**(宽度,高度)**的形式。其中,width = 列数,height = 行数

示例:

3. 图像旋转

图像旋转是指图像按照某个位置转动一定角度的过程,旋转中图像仍保持这原始尺寸。图像旋转后图像的水平对称轴,垂直对称轴及中心坐标原点都可能会发生变化,因此需要对图像旋转中的坐标进行相应转换。

  1. API
cv2.getRotationMatrix2D(center, # 旋转中心坐标angle, # 旋转角度scale) # 缩放比例(一般是缩放之后再进行旋转)

返回:M(旋转矩阵),然后调用cv.warpAffine完成图像的旋转

示例:

4. 仿射变换

图像的仿射变换涉及到图像的形状位置角度的变化,是深度学习预处理中常用功能,仿射变换主要是对图像的缩放,旋转,翻转和平移等操作的组合。

举例解释:

  1. API
# 创建变换矩阵
cv2.getAffineTransform(pts1, # 原始位置pts2) # 输出位置# 完成仿射变换

示例:

5. 透射变换

透射变换是视角变化的结果,是指利用透视中心,像点,目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。

  1. 找到变换矩阵API
# 创建变换矩阵
T = cv.getPerspectiveTransform(pst1, pst2)
# 进行变换
dst = cv.warpPerspective(img, T, (cols, rows))

示例:

6. 图像金字塔

图像金字塔是图像多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。

图像金字塔用于机器视觉和图像压缩,一副图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。

金字塔的底部是待处理的高分辨率表示,而顶部是低分辨率的近似,层级越高,图像越小,分辨率越低。

  1. API
cv.pyrUp(img) # 对图像进行上采样
cv.pyrDown(img) # 对图像进行下采样
  1. 示例

http://www.xdnf.cn/news/20531.html

相关文章:

  • 神马 M66S+ 282T矿机参数详解:SHA-256算法与Hydro冷却技术
  • 贪心算法应用:食品生产线排序问题详解
  • 继承详解(c++)
  • langchain源码概览
  • Java全栈开发面试实录:从基础到实战的深度解析
  • 【牛客刷题-剑指Offer】BM18 二维数组中的查找:一题四解,从暴力到最优
  • Python元组:不可变但灵活的数据容器
  • LwIP入门实战 — 3 以太网外设 (ETH)
  • 什么是JQ
  • solidity函数篇2
  • Netty从0到1系列之EventLoop
  • 魅族 Note 16 解锁 BL 及 Root 官方刷机包下载Flyme 12.0.1.5A 型号 M521Q
  • 基于SVN搭建企业内部知识库系统实践
  • 试用电子实验记录本ELN的经验之谈
  • 【算法】92.翻转链表Ⅱ--通俗讲解
  • Vue 3项目中引用ECharts并设计多种图表组件的实现方案
  • 行政区划编码树形题解
  • 09_多态
  • `IntersectionObserver`延迟加载不在首屏的自动播放视频/图片/埋点/
  • Boost电路:稳态和小信号分析
  • Linux匿名管道和命名管道以及共享内存
  • C++并发编程指南 递归锁 介绍
  • Kimi K2-0905 256K 上下文 API 状态管理优化教程
  • 2.虚拟内存:分页、分段、页面置换算法
  • 分享一个基于Python+大数据的房地产一手房成交数据关联分析与可视化系统,基于机器学习的深圳房产价格走势分析与预测系统
  • Embedding上限在哪里?- On the Theoretical Limitations of Embedding-Based Retrieval
  • AI产品经理面试宝典第86天:提示词设计核心原则与面试应答策略
  • 《sklearn机器学习——聚类性能指标》Calinski-Harabaz 指数
  • Wisdom SSH 是一款搭载强大 AI 助手的工具,能显著简化服务器配置管理流程。
  • SSH服务远程安全登录