Matlab中的透视变换

目的:将两幅尺寸不一,形状不同的图像上的像素点一 一对应起来。【可以是任意两个四边形之间的变换】

例如:已知一幅100x100大小的图像,resize为224x224后,可以通过透视变换,获得原图像上像素坐标在224x224图像上的对应坐标。

               100x100                                                                           224x224

Matlab中的透视变换                     Matlab中的透视变换

通过原图像上的四个顶点和resize图像上的四个顶点求透视变换矩阵,然后将原图像上的点对应到resize后的图像中去。

 img_src =[1,1;1,100;100,1;100,100];
 img_224  = [1,1;1,224;224,1;224,224];

TForm = cp2tform(img_src,img_224,'projective');

tmp = tformfwd(TForm,[100_x  100_y]); %100_x  100_y,原图像上的坐标

224_x = tmp(1);
224_y = tmp(2);%224x224图像上的坐标