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

代码示例

相关推荐
卡梅德生物科技小能手9 分钟前
卡梅德生物科普:CD94(NKG2A)
人工智能·深度学习
阿拉斯攀登10 分钟前
AI Agent 入门:从 ChatGPT 到自主智能体
人工智能·chatgpt·agent·ai编程·loop
码兄科技11 分钟前
Java AI智能体开发实战:从零构建企业级智能应用指南
java·开发语言·人工智能
2401_8595062415 分钟前
AIGC赋能大漆摆件设计:从痛点分析到技术架构与实战验证
java·大数据·人工智能
堆焊工艺分享18 分钟前
2026-2030工业堆焊行业发展趋势:从维修辅业到智造核心工艺
大数据·人工智能
FluxArt34 分钟前
Nano Banana 2 怎么用?14 种宽高比 + 4K 出图完整步骤
人工智能
仙草不加料42 分钟前
第 20 讲:如何把 AI 接入你的日报周报体系
人工智能·ai编程·工作流·程序员效率·ai 提效·日报周报
Robot_Nav42 分钟前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
Geeys1 小时前
淘宝电商运营新手入门完整教程|零基础开店引流
大数据·网络·人工智能
Try_again_11 小时前
WorkBuddy 卸载重装+数据迁移全记录:用 Junction 解决工作空间路径锁定问题
人工智能·ai·腾讯云