0

この関数が行うように、RGB イメージをグレーに変換したいと思います。

Imgproc.cvtColor(mRgba, mGrey, Imgproc.COLOR_RGBA2GRAY);

しかし、openCV は特定の式 (0.299*R + 0.587*G + 0.114*BI だと思いますか?) を使用しており、代わりに min(R,G,B) を使用したいと考えています。

それを行うためのパフォーマンス効率の良い方法はありますか? (これはAndroid用のOpenCVなのでJavaで)

編集 :

これがプロファイリングです。これは間違いなく以前に行う必要がありました。

カメラをキャプチャする基本アプリケーションは 12 FPS で実行されます

  • OpenCV の cvtColor() を使用: 12 FPS (速度の違いはわずかです)
  • マーク・ミラーの答え: 1.5 FPS
  • Mark Millerの回答とMikiの最適化(データポインターを1回取得):7 FPS

信じられないかもしれませんが、その小さな機能だけで FPS の半分のコストがかかります。このデバイスは、ORB のような非常に複雑なものをまともな速度 (3-4 FPS) で実行でき、すべての O(n) C++ ルーチンを FPS の違いなしで実行できます。また、ミキの「トリック」だけで、関数が10倍速くなります。

4

1 に答える 1