opencv-图像仿射变换

仿射变换就是将矩形变为平行四边形,而透视变换可以变成任意不规则四边形。实际上,仿射变换是透视变换的子集,仿射变换是线性变换,而透视变换不仅仅是线性变换。

仿射变换设计图像位置角度的变化,是深度学习预处理中常用的功能。仿射变换就是对图像的平移缩放旋转翻转操作的组合

如下图,对图中点1,2,3与图二中三个点一一映射,仍然形成三角形,但形状已经发生改变,通过这两组三点求出仿射变换矩阵,然后将其应用到图像中所有点就完成了图像的仿射变换

仿射变换基本都是经过平移,旋转,放缩,错切,平移这几个步骤(按顺序执行)等形成了最终的图像

python 复制代码
import numpy as np
import cv2
img = cv2.imread('1.jpg')
#获取图像宽和高
row, cols = img.shape[:2]
#创建变换矩阵,原图3个点,映射后对应3个点坐标
pts1 = np.float32([[0, 0], [0, 307], [216, 307]])
pts2 = np.float32([[50, 50], [200, 50], [100, 200]])
#利用cv2.getAffineTransform来求得矩阵M
M = cv2.getAffineTransform(pts1, pts2)
#利用函数cv2.warpAffine完成仿射变换并返回图像
dst = cv2.warpAffine(img, M, (cols, rows))#(cols, row)指变换后图像大小
#图像显示
cv2.imshow('1.jpg', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

相关推荐
Jackilina_Stone11 分钟前
【AI】简单了解AIGC与ChatGPT
人工智能·chatgpt·aigc
paixiaoxin14 分钟前
学术新手进阶:Zotero插件全解锁,打造你的高效研究体验
人工智能·经验分享·笔记·机器学习·学习方法·zotero
破晓的历程14 分钟前
【机器学习】:解锁数据背后的智慧宝藏——深度探索与未来展望
人工智能·机器学习
AiBoxss17 分钟前
AI工具集推荐,简化工作流程!提升效率不是梦!
人工智能
crownyouyou21 分钟前
最简单的一文安装Pytorch+CUDA
人工智能·pytorch·python
WenGyyyL25 分钟前
变脸大师:基于OpenCV与Dlib的人脸换脸技术实现
人工智能·python·opencv
首席数智官27 分钟前
阿里云AI基础设施全面升级,模型算力利用率提升超20%
人工智能·阿里云·云计算
张琪杭30 分钟前
基于CNN的10种物体识别项目
人工智能·神经网络·cnn
声学黑洞仿真工作室36 分钟前
Matlab Delany-Bazley和Miki模型预测多孔材料吸声性能
开发语言·人工智能·算法·matlab·微信公众平台
ziwu1 小时前
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
人工智能·深度学习·图像识别