我正在制作Android应用来跟踪激光点。
我只是填充具有RGB值的数组。然后寻找最亮的像素。
我正在使用以下相机参数:
parameters.setPreviewSize(320, 240);
parameters.setPreviewFrameRate(10);
parameters.setSceneMode(Camera.Parameters.SCENE_MODE_FIREWORKS);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
当激光点距离相机较小时,结果很好。但是激光点太远或靠近光源会产生问题。
有更好的解决方案。?
我应该使用OpenCV库吗?
答案 0 :(得分:1)
为获得最佳效果,请更改标准;而不是寻找最亮的像素,尝试找到最红的'像素。假设激光点发出红光。 您可以通过;
获取像素的红色值Color.red(pixel);
或
pixel<<8;
pixel>>>24;
修改强>
白色和明亮的灯光仍然会有很大的红色值。为了增加过滤,可以为绿色和蓝色设置阈值。当这些像素值超过阈值时,您可以跳过它们,因为它们可能是纯白色,而不是纯红色。