在图像变换中用最小二乘法求解仿射变换参数

设原图像为f(x,y),畸变后的图像为F(X',Y'),要将F(X',Y')恢复为f(x,y),就是要找到(X',Y')坐标与(x,y)坐标的转换关系,这个转换关系称为坐标变换,表示为(x,y)=T(X',Y')。

景物在成像过程中产生的扭曲,会使图像的比例失调,可用仿射变换来校正各种畸变。先计算出坐标变换的系数,仿射变换的表达式为:R(x)=Px+Q, x=(x,y)是像素的平面位置,P是2*2的旋转矩阵,Q是2*1的平移向量,P、Q即为仿射变换参数,即:

                               x= AX' + BY' + C

                               y= DX' + EY' + F

因此,几何畸变的校正归根结底为坐标转换系数A,B,C,D,E,F的求解。

为了防止出现空像素,一般采用反向映射,由最小二乘法得:

vec1 = inv([X Y I]'*[X Y I])*[X Y I]'*U;
vec2 = inv([X Y I]'*[X Y I])*[X Y I]'*V;
其中vec1=[A B C]'; vec2 =[D E F]'; X Y U V I分别是x,y,X', Y', 1构成的向量。

 

另外,matlab中的cp2tform函数或者nlinfit函数也可以实现类似的功能。

 

你可能感兴趣的:(Image,Processing,Matlab,matlab,c)