基于OpenCV的仿射变换

基本概念

仿射变换是在二维平面对图像进行线性坐标变换的方法,即对图像进行线性变换和平移,包括了图像平移、缩放、旋转、镜像等。仿射变换保留了图像中的 "平行性"和"平直性",即仿射变换后直线和平行线仍然保持是直线和平行线。

平直性:变换后直线还是直线,圆弧还是圆弧

平行性:保持二维图形间的相对位置关系不变,平行线还是平行线,而直线上的点位置顺序不变

仿射变换可以通过一系列的原子变换的复合来实现包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和错切(Shear)

二维码纠正案例

OpenCV中实现图像仿射变换的方法

函数:cv2.warpAffine()

格式:dst=cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])

参数说明:

src:输入图像

dst:输出图像,其大小为dsize

M:一个大小为2×3的转换矩阵,使用不同的转换矩阵可实现平移、旋转等多种操作。

dsize:输出图像的大小。

borderMode:边界像素模式(int 类型)

borderValue:边界填充值; 默认情况下,它为0

flages:表示插值方式,默认为 flags=cv2.INTER_LINEAR,表示线性插值,cv2.INTER_NEAREST为最近邻插值,cv2.INTER_AREA为区域插值,cv2.INTER_CUBIC为三次样条插值,cv2.INTER_LANCAOS4为Lanczos插值

代码示例

相关推荐
rengang664 分钟前
03-深度学习与机器学习的对比:分析深度学习与传统机器学习的异同
人工智能·深度学习·机器学习
倔强青铜三22 分钟前
苦练Python第73天:玩转对象持久化,pickle模块极速入门
人工智能·python·面试
咕咚-萌西24 分钟前
DeepSeek-OCR
人工智能·深度学习·ocr
xcbeyond27 分钟前
从 MCP 到 RAG 再到 Agent:AI 应用架构的下一次跃迁
人工智能
Godspeed Zhao38 分钟前
自动驾驶中的传感器技术74——Navigation(11)
人工智能·机器学习·自动驾驶
Godspeed Zhao39 分钟前
自动驾驶中的传感器技术75——Navigation(12)
人工智能·机器学习·自动驾驶
rengang661 小时前
04-深度学习的基本概念:涵盖深度学习中的关键术语和原理
人工智能·深度学习
杨成功1 小时前
大语言模型(LLM)学习笔记
人工智能·llm
文火冰糖的硅基工坊1 小时前
[人工智能-大模型-122]:模型层 - RNN是通过神经元还是通过张量时间记录状态信息?时间状态信息是如何被更新的?
人工智能·rnn·深度学习
Dev7z1 小时前
基于深度学习的中国交通警察手势识别与指令优先级判定系统
人工智能·深度学习