透過特徵點得到homography matrix
var data = homography.GetData();
var y = data.GetValue(0, 1);
var x = data.GetValue(0, 0);
var tx = data.GetValue(0, 2);
var ty = data.GetValue(1, 2);
Mat img12 = new Mat();
CvInvoke.WarpPerspective(imgSrc1, img12, homography, imgSrc2.Size);
CvInvoke.Imshow("imgOut", img12);
CvInvoke.Imshow("imgSrc2", imgSrc2);
CvInvoke.WaitKey(1);
var theta = -Math.Atan2((double)y, (double)x) * 180 / Math.PI;
Console.WriteLine($"x: {x:0.00} y: {y:0.00} theta: {theta:0.00} tx: {tx:0.00} ty: {ty:0.00}");
情境1
影像來源 1 (16度) → 影像來源 2 (24度)
theta: 8.00 tx: 14.87 ty: -55.26
把來源1 順時針旋轉8度; tx: 水平移動量, ty: 垂直移動量 可以得到和來源影像2相同影像
情境2
影像來源 1 (24度) → 影像來源 2 (16度)
theta: -8.00 tx: -7.03 ty: 56.79
把來源1 逆時針旋轉8度
theta: -8.00 tx: -7.03 ty: 56.79
把來源1 逆時針旋轉8度; tx: 水平移動量, ty: 垂直移動量 可以得到和來源影像2相同影像
留言列表