私はカメラでキャプチャしたビットマップに対して透視変換を実行しようとしています。ユーザは、四角形のオブジェクトの周りに四角形(白いボックスで示されるように)を調整する。私の結果として得られるイメージが私のクワッドの境界の外側にある画像データが含まれていますが視点をトリミングしてAndroid上で画像を変換する
public static Bitmap perspectiveTransformation(Bitmap bitmap,BoundingQuad boundingQuad)
{
Matrix matrix = new Matrix();
float[] dst = new float[] {
0,
0,
bitmap.getWidth(),
0,
bitmap.getWidth(),
bitmap.getHeight(),
0,
bitmap.getHeight()
};
float[] src = new float[] {
boundingQuad.topLeft.x,
boundingQuad.topLeft.y,
boundingQuad.topRight.x,
boundingQuad.topRight.y,
boundingQuad.bottomRight.x,
boundingQuad.bottomRight.y,
boundingQuad.bottomLeft.x,
boundingQuad.bottomLeft.y
};
matrix.setPolyToPoly(src, 0, dst, 0, src.length >> 1);
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}
:私は、以下のコードを使用して矩形画像にこれを変換しようとします。もし私が結果を切り抜くことができるように変換後に四角形の座標が何であるかを知ることができれば、これは受け入れられるだろうが、私はそれをどうするか全く考えていない。
変換後のクワッドの座標を見つけるか、最初にこのような状況が発生しないように理想的な方法を見つけるのに役立ちます。
入力:
http://i.stack.imgur.com/33RfN.png
出力:
http://i.stack.imgur.com/zWFvA.png
はあなたが解決策を見つけましたか?私は同じ問題があります。 –
@ romain-guy多分あなたはその問題のヒントを持っていますか? –