仿射变换Android

时间:2013-11-17 10:08:46

标签: android opencv

我想在我的Android应用程序中使用AffineTransform。 我的应用程序使用openCV,我有两个Rect(openCV对象包含:x,y,width,height)每个Rect描述图像尺寸。 我想使用AffineTransform来查看一个图像如何与其他图像一起呈现矩形(尺寸)。 我的问题是我不知道如何将Rect转换为3 * 3 Matrix,以便使用:

How to perform a similar operation as AffineTransform.transform on Android?

感谢的 大卫

1 个答案:

答案 0 :(得分:1)

如果您只需要将图像从一种尺寸转换为另一种尺寸,那么仿射变换是一种真正的过度杀伤。使用resize函数会更加简单。

编辑(第一条评论): 对不起,我以为你试图转换图像,而不是几何数据。无论如何,在您的情况下,您不需要完全仿射变换。您只需要缩放x和缩放y。适当的转换矩阵将是:

(sx,0,0)

(0,sy,0)

(0,0,1)

编辑(第二条评论):

sx = (double)rect1.width/rect2.width;
sy = (double)rect1.height/rect2.height;
double m[9] = {sx, 0, 0, 0, sy, 0, 0, 0, 1};
Mat transf(3, 3, CV_64F, m);