嗨,
我是Android新手。我正在开发一个应用程序,该应用程序可以捕获图像边缘并对其进行处理。用从Open CV获得的坐标捕获图像后,我正在图像顶部绘制一种多边形的形状。除非我旋转它,否则一切正常。当我旋转时,我也希望按照图片所示移动绘制的坐标。如果旋转90度,则需要根据新度计算坐标并相应绘制边界。我拥有所有第一屏幕截图的坐标的中心。下面是相同的代码:
private PointF getCenter(HashMap<Integer, PointF> points){
PointF centerPoint = new PointF();
int size = points.size();
for(Integer i : points.keySet()){
PointF p = points.get(i);
centerPoint.x += p.x / size;
centerPoint.y += p.y / size;
}
Log.d(TAG, " centerPoint.x "+centerPoint.x);
Log.d(TAG, " centerPoint.y "+centerPoint.y);
return centerPoint;
}
但是我在这里停留在如何计算旋转图像的新坐标上。我也不擅长数学。请帮我。我将其旋转90度。
我从OpenCV获得的第一张图片,然后是我想要获得的第二张图片。
关于, 哑巴
答案 0 :(得分:0)
只需将坐标乘以旋转矩阵R(显然取决于角度)即可:
new_coords = R*old_coords
我认为它是OpenCV中的already implemented,但是您可以轻松地编写R by your self