OpenCVから持っているアフィンマトリックスを取得したいと思います。
Mat T = getAffineTransform(src_pt, dst_pt);
次に、Core Graphics / Objective-C/iOSで使用するためにCGAffineTransformに変換します。(CGAffineTransformドキュメント)
私はもう試した:
CGAffineTransform t = CGAffineTransformIdentity;
t.a = T.at<float>(0,0);
t.b = T.at<float>(0,1);
t.c = T.at<float>(1,0);
t.d = T.at<float>(1,1);
t.tx = T.at<float>(0,2);
t.ty = T.at<float>(1,2);
これは、xおよびyの変換では正常に機能しますが、マトリックスに回転がある場合は機能しません。結果の画像が奇妙に歪んでいるように見えるため、何かが欠落しているようです。.b
と-1を掛けて、.c
とを切り替え.b
て.c
みましたが、どちらもうまくいかなかったようです。画像はまだ正しく歪んで表示されていません。
編集:私はそれがほぼ正しく回転していることを言及する必要があります。bとcを切り替えると、少なくとも正しい方向に回転します。少し回転しすぎているように、少しずれているように見えます。