构造并应用仿射变换矩阵

时间:2015-09-14 06:57:38

标签: matlab affinetransform

我试图通过名为phai的向量中的旋转角度,缩放,剪切和位移值的参数vactror来构造仿射变换矩阵。 矢量组织如下:

phai=[rotationAngle, scalingCoefX, scalingCoefY, shearingCoefX, shearingCoefY, translationCoefX, translationCoefY]';

为了构造仿射变换矩阵,我应用以下代码:

rotation=[cos(phai(1)) sin(phai(1)) 0; -sin(phai(1))cos(phai(1)) 0; 0 0 1];
scaling=[phai(2) 0 0; 0 phai(3) 0; 0 0 1];
shearingY=[1 0 0; phai(5) 1 0; 0 0 1];
shearingX=[1 phai(4) 0; 0 1 0; 0 0 1];
translation=[1 0 0; 0 1 0; phai(6) phai(7) 1];
T=rotation*scaling*shearingY*shearingX*translation;
T = maketform('affine',T);

然后将结果应用于图像(c)我执行:

c=imtransform(c,T);

由于实现要求,我必须定义200个不同的参数值组合。因此,phai通常是200x7矩阵,其中每行包含7个不同仿射参数值的值。

执行时间为:200 phai的总时间为48.375s,自我时间为0.452s。

我的问题是:这段代码是否代表了仿射变换的正确实现?执行时间是否可以接受?在代码是对的情况下,有没有建议加快执行?

非常感谢

0 个答案:

没有答案