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

代码示例

相关推荐
deephub17 分钟前
RAG 文本分块:七种主流策略的原理与适用场景
人工智能·深度学习·大语言模型·rag·检索
newBorn_199117 分钟前
ops-transformer RoPE位置编码 复数旋转硬件加速实战
人工智能·深度学习·transformer·cann
宁远x23 分钟前
Flash Attention原理介绍与使用方法
人工智能·深度学习·机器学习
宁雨桥26 分钟前
打造你的专属AI技能包:如何高效使用和自定义 Skills
人工智能·ai编程·skills
ASKED_201933 分钟前
企业级大模型微调(Fine-tuning)策略
大数据·人工智能·算法
数字时代全景窗1 小时前
是太空算力需要SpaceX,还是SpaceX需要太空算力?
人工智能·软件工程
小程故事多_801 小时前
极简即王道 下一代Agent架构Pi Agent Core设计逻辑深度解析
人工智能·架构·aigc
琅琊榜首20201 小时前
AI+编程思维:高质量短剧脚本高效撰写实操指南
大数据·人工智能·深度学习
阿星AI工作室1 小时前
宝藏skills!90个顶尖博客信源自动抓,AI每天帮我筛出20篇精华!
人工智能·算法
程序员猫哥_2 小时前
无需编程的全栈开发平台如何实现前后端一体化生成?底层逻辑拆解
人工智能