仿射變換

1.仿射變換有:平移、旋轉、縮放、斜切。

2.要進行仿射變換,必須先獲取變換矩陣。要獲取變換矩陣,必須先獲取特徵點座標、角度等信息,幾何匹配和bolb是獲取特徵點的高效方法,除此之外還有其它方法,只要能穩定的求出特徵點即可。

3.仿射變換流程

   (1.)獲取特徵點座標、角度

   (2.)計算仿射變換矩陣

   (3.)對圖像、區域、輪廓進行仿射變換

4.根據特徵點、角度計算仿射變換矩陣

   hom_mat2d_identity(:::HomMat2DIdentity) 

   功能:產生仿射變換矩陣

   

   hom_mat2d_rotate(::HomMat2D,Phi,Px,Py:HomMat2DRotate)

   功能:把旋轉角度添加到仿射變換矩陣

    HomMat2D:(輸入參數)仿射變換矩陣

    Phi(輸入參數):旋轉角度(單位弧度)

   Px(輸入參數):變換的固定點行座標。固定點是指以該點爲支撐進行仿射變換  (這裏是指圍繞這點進行旋轉)

   Py:(輸入參數)變換的固定點列座標

   HomMat2DRotate:(輸出參數)輸出變換矩陣

   

   hom_mat2d_scale(::HomMat2D,Sx,Sy,Px,Py:HomMat2DScale)

   功能:把縮放添加到仿射變換矩陣

   HomMat2D(輸入參數):仿射變換矩陣

   Sx(輸入參數):x軸方向的縮放因子

   Sy(輸入參數):y軸方向的縮放因子

   Px(輸入參數):變換的固定點行座標

   Py(輸入參數):變換的固定點列座標

   HomMat2DScale(輸出參數):輸出變換矩陣

   

   hom_mat2d_translate(::HomMat2D,Tx,Ty:HomMat2DTranslate)

   功能:把平移添加到防射變換矩陣

   HomMat2D:(輸入參數)仿射變換矩陣

   Tx(輸入參數):沿x軸方向平移的距離

   Ty:輸入參數):沿y軸方向平移的距離

   HomMat2DTranslate(輸出參數):輸出變換矩陣


   hom_mat2d_slant(::HomMat2D,Theta,Axis,Px,Py:HomMat2DSlant)

   功能:把斜切添加到防射變換矩陣

   HomMat2D(輸入參數):仿射變換矩陣

   Theta(輸入參數):斜切角度(單位:弧度)

   Axis(輸入參數):斜切的座標軸。取值列表:x,y

   Px(輸入參數):變換的固定點x座標

   Py(輸入參數):變換的固定點y座標

   HomMat2DSlant(輸出參數):輸出仿射變換矩陣


             vector_angle_to_rigid(::Row1,Column1,Angle1,Row2,Column2,Angle2:HomMat2D)

  功能:根據點和角度計算剛性仿射變換矩陣,支持旋轉和平移

  Row1(輸入參數):原始點行座標

  Column1(輸入參數):原始點列座標

  Angle1(輸入參數):原始點角度

  Row2(輸入參數):變換的目的點行座標

  Column2(輸入參數):變換的目的點列座標

  Angle2(輸入參數):變換的目的點角度

  HomMat2D(輸出參數):輸出仿射變換矩陣


5.根據兩個以上特徵點計算仿射變換矩陣

    vector_to_rigid(::Px,Py,Qx,Qy:HomMat2D)

    功能:根據兩個以上點對計算計算剛性仿射變換矩陣,支持旋轉和平移

    Px:(輸入參數)原始點組的x座標

    Py:(輸入參數)原始點組的y座標

    Qx:(輸入參數)變換的目的點組的x座標

    Qy:(輸入參數)變換的目的點組的y座標

    HomMat2D:(輸出參數)輸出仿射變換矩陣


    vector_to_similarity(::Px,Py,Qx,Qy:HomMat2D)

    功能:根據兩個以上點對計算相似仿射變換矩陣,支持旋轉、平移和縮放

    Px:(輸入參數)原始點組的x座標

    Py:(輸入參數)原始點組的y座標

    Qx:(輸入參數)變換的目的點組的x座標

    Qy:(輸入參數)變換的目的點組的y座標

    HomMat2D:(輸出參數)輸出仿射變換矩陣


6.根據三個以上特徵點獲取仿射變換矩陣

   vector_to_hom_mat2d(::Px,Py,Qx,Qy:HomMat2D)

    功能:根據三個以上點對計算仿射變換矩陣,支持旋轉、平移、縮放、斜切

    Px:(輸入參數)原始點組的x座標

    Py:(輸入參數)原始點組的y座標

    Qx:(輸入參數)變換的目的點組的x座標

    Qy:(輸入參數)變換的目的點組的y座標

    HomMat2D:(輸出參數)輸出仿射變換矩陣

7.計算仿射變換參數

   hom_mat2d_to_affine_par(::HomMat2D:Sx,Sy,Phi,Theta,Tx,Ty)

   功能:根據仿射變換矩陣(齊次二維變換矩陣)計算仿射變換參數

    HomMat2D(輸入參數):仿射變換矩陣

    Sx(輸出參數):x方向的縮放因子(如果從圖像空間變換到物理空間,就是x方向的        像素單量)

    Sy(輸出參數):y方向的縮放因子(如果從圖像空間變換到物理空間,就是y方向的        像素單量)

    Phi(輸出參數):旋轉角度

    Theta(輸出參數):斜切角度

    Tx(輸出參數):沿x方向平移的距離

    Ty(輸出參數):沿y方向平移的距離


8.對圖像、ROI和XLD進行仿射變換

     affine_ trans_contour_xld(Contours:ContoursAffinTrans:HomMat2D)

     功能:對XLD輪廓進行二維仿射變換,支持縮放,旋轉,平移,斜切

     Contours(輸入參數):輸入XLD輪廓

     ContoursAffinTrans(輸出參數):輸出變換的XLD輪廓

     HomMat2D(輸入參數):仿射變換矩陣


        affine_trans_image(Image:ImageAffinTrans:HomMat2D,Interpolation,AdaptImageSize)

 功能:對圖像輪廓進行二維仿射變換,支持縮放、旋轉、平移,斜切

  Image(輸入參數):輸入圖像

  ImageAffinTrans(輸出參數):變換後的圖像

  HomMat2D(輸入參數):仿射變換矩陣

  Interpolation(輸入參數):插值算法。參數值列表:                    nearest_neighbor,bilinear,constant,weighted

  AdaptImageSize(輸入參數):結果圖像尺寸是否自適應。默認值:false


  affine_trans_region(Region:RegionAffineTrans:HomMat2D,Interpolate:)

  功能:對區域進行任意二維仿射變換

  Region(輸入參數):輸入區域

  RegionAffineTrans(輸出參數):變換的區域

  HomMat2D(輸入參數):仿射變換矩陣

  Interpolate(輸入參數):插值算法。默認值:nearest_neighbor。參數值列表:constant,nearest_neighbor

 

    affine_trans_polygon_xld(Polygon:PolygonsAffinTrans:HomMat2D:)

    功能:對XLD多邊形進行任意二維仿射變換

    Polygon(輸入參數):輸入XLD多邊形

    PolygonsAffinTrans(輸出參數):變換的XLD多邊形

    HomMat2D(輸入參數):仿射變換矩陣



    affine_trans_point_2d(::HomMat2D,Px,Py:Qx,Qy)

    功能:對點進行任意二維仿射變換,支持縮放、旋轉、平移、斜切

    HomMat2D(輸入參數):仿射變換矩陣

    Px(輸入參數):原始點x或行座標

    Py(輸入參數):原始點y或列座標

    Qx(輸出參數):變換點x或行座標

    Qy(輸出參數):變換點y或列座標


    affine_trans_pixel(::HomMat2D,Row,Col:RowTrans,ColTrans)

    功能:對像素進行任意二維仿射變換

     HomMat2D(輸入參數):仿射變換矩陣

     Row(輸入參數):輸入像素行座標

     Col(輸入參數):輸入像素列座標

     RowTrans(輸出參數):變換的像素行座標

     ColTrans(輸出參數):變換的像素列座標

    注:affine_trans_point_2d與affine_trans_pixel的區別:affine_trans_pixel使用的圖像座標系的原點在圖像的左上角,affine_trans_point_2d使用標準圖像座標系,原點在左上角像素的中心

   






  





   




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章