Halcon学习之仿射变换4

11.添加一个旋转效果到一个仿射变换矩阵(相对于本地坐标系统,即图像中心点)

cout << "12.添加缩放因子到一个仿射矩阵中。相对于本地坐标系统" << endl;
    //添加缩放因子到一个仿射矩阵中。
    HHomMat2D scalelocal = hommat2d.HomMat2dScaleLocal(0.8,1);//其中第一个参数代表x轴方向的缩放系数,第二个参数代表y轴方向的缩放系数
    result_image = image.AffineTransImage(scalelocal, "constant", "true");//对指定image进行仿射变换
    image.DispColor(w);
    w.Click();
    w.ClearWindow();
    result_image.DispColor(w);
    w.Click();

13.添加一个斜切因子到仿射变换矩阵中

//添加一个斜切因子到仿射变换矩阵中
    HHomMat2D slant = hommat2d.HomMat2dSlant(0.78, "x", centerX,centerY);//参数1:斜切角度,参数2:斜切对应的坐标轴,参数3:变换的固定点x坐标,参数4:变换的固定点y坐标
    result_image = image.AffineTransImage(slant, "constant", "true");//对指定image进行仿射变换
    image.DispColor(w);
    w.Click();
    w.ClearWindow();
    result_image.DispColor(w);
    w.Click();

14.添加一个斜切因子到仿射变换矩阵中(相对于本地坐标系统,即图像左上角的点)

//添加一个斜切因子到仿射变换矩阵中
    HHomMat2D slantlocal = hommat2d.HomMat2dSlantLocal(0.78, "x");//参数1:斜切角度,参数2:斜切对应的坐标轴
    result_image = image.AffineTransImage(slantlocal, "constant", "true");//对指定image进行仿射变换
    image.DispColor(w);
    w.Click();
    w.ClearWindow();
    result_image.DispColor(w);
    w.Click();

15.从一个仿射变换矩阵中计算各个仿射变换参数

    //从一个仿射变换矩阵中计算各个仿射变换参数
    double Sx,Sy, Phi, Theta, Tx, Ty;//Sx:x方向的缩放因子,Sy:y方向的缩放因子,Theat:斜切角度,Tx:沿x方向平移的距离,Ty:沿y方向平移的距离。
    Sx = slantlocal.HomMat2dToAffinePar(&Sy, &Phi, &Theta, &Tx, &Ty);
    cout << "Sx: " << Sx << " Sy:" << Sy << " Phi:" << Phi << " Theta:" << Theta << " Tx:" << Tx << " Ty:" << Ty << endl;

你可能感兴趣的:(仿射变换,halcon)