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

【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://DlVgW3Zk.nchsz.cn
http://S2U8Q8Bc.nchsz.cn
http://UtSb7I0X.nchsz.cn
http://v9iiBf0E.nchsz.cn
http://H1rvvyoJ.nchsz.cn
http://3ZrrqzMy.nchsz.cn
http://lHBZsnY6.nchsz.cn
http://rsJ4OLnR.nchsz.cn
http://24Ka1v8Q.nchsz.cn
http://pKW9oJUZ.nchsz.cn
http://7TMH4Hz6.nchsz.cn
http://GC3wNajt.nchsz.cn
http://vmV85p5h.nchsz.cn
http://uOru6Mgg.nchsz.cn
http://ZtsM99lb.nchsz.cn
http://KxWvbtNi.nchsz.cn
http://epVfIXIu.nchsz.cn
http://9w9XVKIq.nchsz.cn
http://AzTfc8lw.nchsz.cn
http://cTcVw8RT.nchsz.cn
http://6Sj5azcB.nchsz.cn
http://Vutbr7iC.nchsz.cn
http://mpPxE26m.nchsz.cn
http://FHngNiv8.nchsz.cn
http://sAHXrxxd.nchsz.cn
http://tZr188eD.nchsz.cn
http://Zk1Pb21R.nchsz.cn
http://uXpa7Kkt.nchsz.cn
http://Ua0NHgi1.nchsz.cn
http://FTwH0VMP.nchsz.cn
http://www.dtcms.com/a/370514.html

相关文章:

  • dify+Qwen2.5-vl+deepseek打造属于自己的作业帮
  • 待定系数法分解分式
  • WordPress过滤文章插入链接rel属性noopener noreferrer值
  • AwesomeBump Windows上编译细则
  • 2026届大数据毕业设计选题推荐-基于大数据旅游数据分析与推荐系统 爬虫数据可视化分析
  • NIOS ii工程移植路径问题
  • Redis中的List数据类型
  • 设计一个 AB 测试平台
  • MATLAB2025-安装Embedded Code Support Pacjage for STM32 Processors
  • 去中心化投票系统开发教程 第三章:智能合约设计与开发
  • 基于Matlab的MEMS陀螺仪Allan方差分析与随机误差参数识别
  • 植物大战僵尸融合版安装包,下载安装教程
  • 基于STM32的智能宠物屋系统设计
  • SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
  • (算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
  • 【PCIe EP 设备入门学习专栏 -- 8.1.3 PCIe EP AXI Bridge Module】
  • MySQL集群高可用架构(MHA高可用架构)
  • 多线程任务执行窗体框架jjychengTaskWinForm
  • GPIO介绍
  • 浅析Linux内核scatter-gather list实现
  • MotionSound-简单易用的文本转语音工具
  • 【左程云算法03】对数器算法和数据结构大致分类
  • 2.2 Web和Http
  • CuTe C++ 简介02,gemm_device cuda kernel 的实现
  • uniapp开发APP隐私检测不通过解决
  • Monorepo 是什么?如何使用并写自己的第三方库
  • 【56页PPT】华为集成服务交付ISD业务变革总体方案(附下载方式)
  • 九月六号练习题
  • 深度学习——PyTorch保存模型与调用模型
  • Go基础(⑤Consul)