我应该设置哪些摄像机参数来使用Android摄像机检测激光点
我正在制作Android应用程序来跟踪激光点 我只是填充具有RGB值的数组。然后寻找最亮的像素 我正在使用以下相机参数:我应该设置哪些摄像机参数来使用Android摄像机检测激光点,android,image-processing,Android,Image Processing,我正在制作Android应用程序来跟踪激光点 我只是填充具有RGB值的数组。然后寻找最亮的像素 我正在使用以下相机参数: parameters.setPreviewSize(320, 240); parameters.setPreviewFrameRate(10); parameters.setSceneMode(Camera.Parameters.SCENE_MODE_FIREWORKS); parameters.setFocusMode(Camera.Parameters.FOCUS
parameters.setPreviewSize(320, 240);
parameters.setPreviewFrameRate(10);
parameters.setSceneMode(Camera.Parameters.SCENE_MODE_FIREWORKS);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
当激光点与摄像机的距离较小时,结果良好。但激光点离光源太远或太近会造成问题
有更好的解决办法吗
我应该使用OpenCV库吗?为了获得最佳效果,请更改您的标准;与其寻找最亮的像素,不如尝试寻找“最红”的像素。假设激光点发射红光。 您可以通过以下方式获得像素的红色值:
Color.red(pixel);
或
pixel>24;
编辑
白色和明亮的灯光仍然有很大的红色值。要增加过滤,可以设置绿色和蓝色的阈值。当这些像素值超过阈值时,您可以跳过它们,因为它们可能是白色而不是纯红色 我以前也这么做过:但相机滤光片会让激光点变成白色(也许只是在我的方便面上)。所以我使用了焰火场景模式,所以它几乎看不到激光点,我以前什么也没做过:但由于相机的滤光片,激光点在取景器中显示为白色而不是红色。好吧,这就是我所能做的。我会说,识别形状,但明亮的东西最有可能在相机上有一个圆形图案。
pixel<<8;
pixel>>>24;