2

y軸に沿って画像をせん断したいが、指定されたx値を同じ高さに保ちます。せん断行列を次のように使用する場合:

[1, 0, 0] 
[s, 1, 0] 

s =関数「warpAffine」のせん断係数を使用すると、せん断された画像が取得されますが、原点は常に0,0です。私は別のx(そして多分y)に原点を持っている必要があります。

したがって、変換行列を組み合わせて、画像を左に変換し、せん断を実行して画像を右に戻す必要があると思いますが、次の理由から、これらの行列を組み合わせる方法がわかりません。

[1, 0, dx]   [1, 0, 0]     [1, 0, -dx] 
[0, 1, dy] * [s, 1, 0]  *  [0, 1, -dy] 

明らかに動作しません。

0,0以外の選択した原点でせん断操作を実行するにはどうすればよいですか?

4

1 に答える 1

1

これらの変換を組み合わせる必要があることは正しいです。それらを結合するには、3 行目に [0,0,1] を追加して、すべてを 3x3 行列に変換します。次に、3 つの行列すべてを乗算できます。一番下の行が [0,0,1] のままになっている場合は、それを削除して、結果の 2x3 行列を組み合わせた変換として使用できます。

于 2012-11-20T18:47:52.397 に答える