0

我正在制作 Android 应用程序来跟踪激光点。

我只是在填充具有 RGB 值的数组。然后寻找最亮的像素。

我正在使用以下相机参数:

 parameters.setPreviewSize(320, 240);
 parameters.setPreviewFrameRate(10);
 parameters.setSceneMode(Camera.Parameters.SCENE_MODE_FIREWORKS);
 parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);

当激光点与相机的距离较小时,结果很好。但是激光点离光源太远或太近会产生问题。

有没有更好的解决方案。?

我应该使用 OpenCV 库吗?

4

1 回答 1

1

为了获得最佳结果,请更改您的标准;与其寻找最亮的像素,不如尝试寻找“最红”的像素。假设激光点发出红光。您可以通过以下方式获取像素的红色值;

Color.red(pixel);

或者

pixel<<8;
pixel>>>24;

编辑

白色和明亮的灯光仍然具有很好的红色值。为了增加过滤,可以为绿色和蓝色设置一个阈值。当这些像素值超过阈值时,您可以跳过它们,因为它们可能是白色而不是纯红色。

于 2012-09-02T14:46:59.077 回答