如何将android触摸坐标转换为OpenCV图像坐标?

时间:2014-12-03 19:18:18

标签: android opencv image-processing affinetransform

我正在尝试做类似的事情,但在Android上: http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/warp_affine/warp_affine.html 我有一个图像绘制到ImageView,我希望能够选择6点(3个源和3个目标) 并像之前的例子一样在OpenCV上使用warpAffine方法。 我能够重现上面的例子,但是当从onTouch事件传递X,Y坐标时,它并没有给我我期望的东西。 我认为问题是如何将android触摸坐标转换为OpenCV Mat列/行。 也许我需要在OpenCV表面上显示图像? 我希望我很清楚, 提前谢谢。

1 个答案:

答案 0 :(得分:4)

触摸坐标指的是属于Android屏幕分辨率的点(Samsung Galaxy S3为720x1280)。 另一方面,OpenCV图像可能比这更大或更小,这意味着触摸坐标无法直接映射到图像坐标

将一个分辨率转换为另一个分辨率需要做的是将触摸坐标从720x1280标准化到640x480范围。因此,要在图像上找到真实坐标,您需要执行以下操作:

real_x = (touch_x * 640) / 720;
real_y = (touch_y * 480) / 1280;