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

代码示例

相关推荐
沛沛老爹3 小时前
Web开发者进阶AI:企业级Agent Skills安全策略与合规架构实战
前端·人工智能·架构
说私域3 小时前
基于AI客服链动2+1模式商城小程序的社群运营策略研究——以千人社群活跃度提升为例
人工智能·微信·小程序·私域运营
大猫子的技术日记4 小时前
从DALL·E到Seedream:AI文生图技术全景速览与实战指南
人工智能
无bug代码搬运工4 小时前
文献阅读:Class-incremental Learning for Time Series:Benchmark and Evaluation
人工智能·深度学习·transformer
乾元4 小时前
智能化侦察:利用 LLM 进行自动化资产暴露面识别与关联
运维·网络·人工智能·网络协议·安全·自动化
lbb 小魔仙4 小时前
AI工具与编程实践:重塑研发效率的双重引擎AI双擎驱动:工具与编程重构研发全流程的实战指南
人工智能·重构
行业探路者4 小时前
如何利用二维码提升富媒体展示的效果?
大数据·人工智能·学习·产品运营·软件工程
爱打代码的小林4 小时前
opencv(边缘检测)
人工智能·opencv·计算机视觉
lizhenning874 小时前
语言模型与动词知识库协同创新
人工智能·语言模型·自然语言处理
明月照山海-4 小时前
机器学习周报三十一
人工智能·机器学习