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

OpenCV第6课 图像处理之几何变换(仿射)

1.仿射变换

2. 平移

3 旋转

附录A  二维旋转矩阵

附录B 三维旋转矩阵与轴角表示


1.仿射变换

        仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。

        平直性是指图像经过仿射变换后,直线仍然是直线,平行性是指图像在完成仿射变换后,平行线仍是平行线。

        平移和旋转都是仿射变换的特例,所用函数都是cv2.warpAffine,其通过一个变换矩阵(映射矩阵)M实现变换,平移和旋转转换矩阵不同。具体为:

        

        如下图,可以通过一个变换矩阵M,将原始图像O变换为仿射图像R。

                

cv2.warpAffine()函数的语法格式如下:
        dst = cv2.warpAffine( src, M, dsize[, flags[, borderMode[, borderValue]]] )

式中:

  1. dst:代表仿射后的输出图像,该图像的类型和原始图像的类型相同。dsize决定输出图像的实际大小。
  2. src:代表要仿射的原始图像。
  3. M:代表一个2×3的变换矩阵。使用不同的变换矩阵,就可以实现不同的仿射变换。
  4. dsize 代表输出图像的尺寸大小。
  5. flags:代表插值方法,默认为INTER_LINEAR。当该值为WARP_INVERSE_MAP 时,意味着M是逆变换类型,实现从目标图像dst到原始图像src的逆变换。具体可选值:borderMode代表边类型,默认为BORDER_CONSTANT。当该值为BORDER_TRANSPARENT时,意味着目标图像内的值不做改变,这些值对应原始图像内的异常值。
  6. borderValue:代表边界值,默认是0。

        通过以上分析可知,在OpenCV中使用函数cv2.warpAffine()实现仿射变换,忽略其可选参数后的语法格式为:

         dst = cv2.warpAffine( src , M , dsize )

        其通过转换矩阵M 将原始图像src 转换为目标图像dst:

        

        因此,进行何种形式的仿射变换完全取决于转换矩阵M。下面分别介绍通过不同的转换矩阵M实现的不同的仿射变换。

2. 平移

        平移是物体的移动,如果知道物体平移的坐标,可以创建如下变换矩阵:

                              

        将其放入类型为np.float32的数组中,将M矩阵赋值给cv2.warpAffine() 函数,即可实现平移。

例程如下:

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

相关文章:

  • 开元类双端互动组件部署实战全流程教程(第2部分:控制端协议拆解与机器人逻辑调试)
  • 解读《国家数据标准体系建设指南》:数据治理视角
  • 多语言笔记系列:Polyglot Notebooks 中运行 BenchmarkDotnet 基准测试
  • 【HarmonyOS 5】鸿蒙应用数据安全详解
  • 【2025最新】AI绘画终极提示词库|MidjourneyStable Diffusion通用公式大全
  • 如何将腾讯云的测试集成到自己的SpringBoot中
  • stm32之TIM定时中断详解
  • 力扣面试150题-- 翻转二叉树
  • Kubernetes控制平面组件:Controller Manager详解
  • 调试——GDB、日志
  • 使用直觉理解不等式
  • 架构思维:构建高并发读服务_热点数据查询的架构设计与性能调优
  • JVM 内存结构全解析
  • AI预测的艺术品走势靠谱吗?
  • 矩阵快速幂 快速求解递推公式
  • 数据集-目标检测系列- 蜥蜴 检测数据集 lizard >> DataBall
  • kotlin中枚举带参数和不带参数的区别
  • Debezium MySqlValueConverters详解
  • 抖音生活服务“五一”数据:小城游火爆,“食住”消费增速显著
  • 【Game】Powerful——Transformation Card(10)
  • linux系统基本操作命令
  • 探索神经符号系统:医疗AI的范式化进程分析
  • # 从零构建一个简单的卷积神经网络:手写数字识别
  • HTML 元素
  • adb无线调试步骤
  • MySQL C API高效编程:C语言实现数据库操作的深入解析
  • Git 第一讲---基础篇 git基础概念与操作
  • 《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-《用无人机仿真玩转PID控制:MATLAB四旋翼仿真建模全攻略》
  • MATLAB人工大猩猩部队GTO优化CNN-LSTM多变量时间序列预测
  • CDN一般在什么情况下会出现402报错呢?