1. 程式人生 > >在圖像變換中用最小二乘法求解仿射變換參數

在圖像變換中用最小二乘法求解仿射變換參數

坐標轉換 .net 坐標變換 人工 關系 向量 校正 變換 lin

設原圖像為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函數也可以實現類似的功能。

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

在圖像變換中用最小二乘法求解仿射變換參數