2012-09-02 29 views
0

我正在製作Android應用程序來跟蹤激光點。我只是填充有RGB值的數組。然後尋找最明亮的像素。我應該設置什麼相機參數來使用Android相機檢測激光點

我使用下列相機參數:

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

結果是細當激光點位於距照相機的更小的距離。但激光點太靠近光源或產生問題。

有沒有更好的解決方案?

我應該使用OpenCV庫嗎?

回答

1

爲獲得最佳結果,請更改您的標準;而不是尋找最明亮的像素,試着找到'最紅'的像素。假設激光點發出紅光。 你可以得到像素的紅色值;

Color.red(pixel); 

pixel<<8; 
pixel>>>24; 

編輯

白色和明亮的燈光仍然有很大的紅色值。要增加過濾,可以爲綠色和藍色添加一個閾值。當這些像素值超過閾值時,你可以跳過它們,因爲它們可能是白色而不是純紅色。

+0

我之前是這麼做的:但相機濾鏡讓激光點出現白色(也許只是在我的fone中)。所以我用煙花場景模式,所以它幾乎沒有看到激光點,沒有別的 – user1568701

+0

我之前這樣做:但由於相機的過濾器激光點在取景器中出現白色不是紅色。 – user1568701

+0

好吧,這就是我所能做的。我會說承認形狀,但明亮的東西最有可能在相機上有一個圓形圖案。 – mehmetminanc

相關問題