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

代码示例

相关推荐
梦想的颜色6 分钟前
Claude Code 桌面端 vs CLI 全面安装指南与对比:2026 最新版,选哪个?
人工智能·架构·claude code
Omics Pro11 分钟前
基因泰克:检测级虚拟细胞基准!大语言模型+智能体
大数据·数据库·人工智能·机器学习·语言模型·自然语言处理·r语言
z小猫不吃鱼17 分钟前
15 InstructGPT 论文精读:SFT + RLHF 如何让模型听懂指令?
人工智能·深度学习·算法·机器学习·语言模型·自然语言处理·gpt-3
我爱cope19 分钟前
【Agent智能体12 | 反思设计模式-使用外部反馈】
人工智能·设计模式·语言模型·职场和发展
2601_9594796324 分钟前
ZFX山海证券:“美股新高映射盈利支撑”
人工智能
weixin_4462608525 分钟前
VideoFDB 深度分析:全双工视听对话智能体评估基准
人工智能
新加坡内哥谈技术26 分钟前
Claude Code 中动态工作流(Dynamic Workflows)
人工智能
救救孩子把26 分钟前
78-机器学习与大模型开发数学教程-7-6 自注意力机制的计算复杂度分析
人工智能·机器学习
XMAIPC_Robot26 分钟前
基于RK3588 ARM+FPGA电火花数控机床控制系统设计,兼顾ethercat软硬件实时
linux·arm开发·人工智能·嵌入式硬件·fpga开发
见合八方27 分钟前
【滤波器】热调谐FP滤波器
人工智能·算法