我正在制作Android应用程序来跟踪激光点。
我只是在填充具有RGB值的数组。然后寻找最亮的像素。
我使用的相机参数如下:
parameters.setPreviewSize(320, 240);
parameters.setPreviewFrameRate(10);
parameters.setSceneMode(Camera.Parameters.SCENE_MODE_FIREWORKS);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);当激光点在离相机较小的距离时,结果很好。但是,如果激光点太远或接近光源,就会产生问题。
有更好的解决办法吗?
我应该使用OpenCV库吗?
发布于 2012-09-02 14:46:59
为了获得最好的结果,改变你的标准;不要寻找最亮的像素,而是尝试找到‘最红’像素。假设激光点发出红光。你可以得到像素的红色值;
Color.red(pixel);或
pixel<<8;
pixel>>>24;编辑
白光和明亮的灯光仍将有巨大的红色价值。要增加过滤,可以为绿色和蓝色设置一个阈值。当这些像素值超过阈值时,您可以跳过它们,因为它们可能是白色的,而不是纯红色。
https://stackoverflow.com/questions/12236765
复制相似问题