zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里学习常见问题汇编29

Opencv学习 常见问题 29 汇编
2023-09-14 09:10:32 时间

问题二十九:仿射变换( Afine Transformations )——放大缩小

这个问题与前的问题其实是一样的解决方案,就是对矩阵进行相乘,对像素所在的坐标进行变换。现在想对图像在X轴方向放大1.3倍,在Y轴上缩小0.8倍,并且进行前面的平移操作,可以根据仿射变换公式:

根据这个变换公式就可以使用代码表示如下:

adbc = a * d - b * c

x = np.round((d * x_new - b * y_new) / adbc).astype(np.int) - tx + 1

y = np.round((-c * x_new + a * y_new) / adbc).astype(np.int) - ty + 1

在这里就可以通过变换前和变换后坐标计算出来,然后就可以获得图像像素的在新图像里表示。