基于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插值

代码示例

相关推荐
ppppppatrick16 小时前
【深度学习基础篇05】从AlexNet到ResNet:经典卷积神经网络的演进
人工智能·深度学习·cnn
一只理智恩16 小时前
基于 CesiumJS + React + Go 实现三维无人机编队实时巡航可视化系统
前端·人工智能·算法·golang·无人机
DeepModel16 小时前
【回归算法】梯度提升回归(GBDT)超详细讲解
人工智能·数据挖掘·回归
星爷AG I16 小时前
12-10 社会分类(AGI基础理论)
人工智能·agi
LaughingZhu16 小时前
Product Hunt 每日热榜 | 2026-02-23
人工智能·经验分享·深度学习·神经网络·产品运营
Monday学长16 小时前
2026 学术写作 AI 工具测评:6 款主流工具深度对比
人工智能
qq_4044189516 小时前
nlp基础概念
人工智能·自然语言处理
love530love16 小时前
Windows 多 Git 环境冲突:一个环境变量优先级引发的血案
人工智能·windows·git·环境变量·scoop
菜鸟小芯16 小时前
【GLM-5 陪练式创意 UI 实战】第一篇:创意魔法盒 —— 用 AI 生成 “开心” 主题 Flutter UI,搞定深浅色与响应式
人工智能·flutter·ui
pcplayer16 小时前
Delphi程序和AI大模型交互
人工智能·交互