カメラで動きを検出できるかどうか知りたいです。アプリケーションは 2 台の電話で実行され、1 台は x ポイントで、もう 1 台は x+meters で実行され、正確なストッパーとして使用されます。
したがって、私が検出したい動きの種類は、カメラを高速 (最大 40 KMH) で通過するオブジェクトです。
もう一度言いますが、可能ですか?
2つの画像を比較することで実行できます。基本的に onPreviewFrame(byte[] data, Camera cam) メソッドをオーバーライドし、デフォルトの YUV から RGB に変換する必要があります。
int[] rgb = ImageProcessing.decodeYUV420SPtoRGB(data, width, height);
モーション検出コードに使用するオブジェクトを作成します。
IMotionDetection detector = new RgbMotionDetection();
上記で取得したパラメーターを渡して detect() メソッドを呼び出します。
boolean detected = detector.detect(rgb, width, height)
ブール値の「detected」変数が true の場合、動きが検出されています。
RGB 検出コードは RgbMotionDetection.java クラスにあります。画像処理コードは ImageProcessing.java 静的クラスにあります。すべてを結び付けるアクティビティは、MotionDetectionActivity.java にあります。