天津免费建网站,seo外包团队,动画制作培训学院,临县网站建设『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】24. 图像的仿射变换
几何变换的可以分为等距变换、相似变换、仿射变换和投影变换。在很多书籍中把等距变换、相似变换都称为仿射变换#xff0c;常见的仿射变换包括平移、旋转、缩放、翻转、斜切等…『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】24. 图像的仿射变换
几何变换的可以分为等距变换、相似变换、仿射变换和投影变换。在很多书籍中把等距变换、相似变换都称为仿射变换常见的仿射变换包括平移、旋转、缩放、翻转、斜切等方法。
等距变换图像中的长度、面积不变典型的等距变换是 平移、旋转。相似变换图像中的长度比、夹角、虚圆点不变相似变换是在等距变换的基础上进行了缩放典型的相似变换是 缩放。仿射变换图像中的平行关系、面积比、共线线段或平行线段的长度比、矢量的线性组合不变仿射变换是旋转和非均匀缩放的复合典型的仿射变换是 斜切。投影变换图像中的共点、共线、相交、相切、拐点的关系不变投影变换是在仿射变换基础上进行的非线性缩放典型的投影变换是 透视。
仿射变换affine的特点是原始图像中的平行关系和线段长度比例关系保持不变。
OpenCV 中的图像以多维数组描述通过仿射变换变换为另一个多维数组转换图像。
仿射变换中的校正图像在二维空间中完成在几何上定义为一个线性变换接一个平移变换。
仿射变换由以下公式描述
[x~y~1]MA[xy1],MA[a11a12a13a21a22a23001]\begin{bmatrix} \tilde{x}\\ \tilde{y}\\ 1 \end{bmatrix} M_A \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} ,\hspace{1em} M_A \begin{bmatrix} a_{11} a_{12} a_{13}\\ a_{21} a_{22} a_{23}\\ 0 0 1 \end{bmatrix} ⎣⎡x~y~1⎦⎤MA⎣⎡xy1⎦⎤,MA⎣⎡a11a210a12a220a13a231⎦⎤
OpenCV 提供了 cv2.warpAffine 函数实现仿射变换的操作。
仿射变换矩阵 MA 中有 6 个未知参数cv2.getAffineTransform 根据图像中不共线的 3 个点在变换前后的对应位置坐标构造 6元一次方程组即可求出仿射变换矩阵 MA。cv2.warpAffine 再用变换矩阵 MA 计算得到变换后的图像。
基本例程1.33 图像的仿射变换 # 1.33 仿射变换: 平移、镜像、旋转 (cv2.warpAffine)img cv2.imread(../images/imgB2.jpg) # 读取彩色图像(BGR)rows, cols, ch img.shapepts1 np.float32([[50, 50], [200, 50], [50, 200]]) # 初始位置pts2 np.float32([[50, 100], [200, 50], [100, 250]]) # 终止位置MA cv2.getAffineTransform(pts1, pts2) # 计算 2x3 变换矩阵 MAdst cv2.warpAffine(img, MA, (cols, rows)) # 实现仿射变换plt.figure(figsize(9,6))plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title(Original)plt.subplot(122), plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)), plt.title(warpAffine)plt.show()本节完 版权声明 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/125112487) Copyright 2022 youcans, XUPT Crated2021-11-18 【第3章图像的几何变换】
24. 图像的仿射变换 25. 图像的平移 26. 图像的旋转以原点为中心