読者です 読者をやめる 読者になる 読者になる

元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

ぎゃー

JMF周りの挙動がどーもおかしいとおもったら

カメラから取ったピクセル配列RGBじゃなくてBGRだった
o.....rz

なんでじゃろう。

追記

OpenGL周りも巻きこんだバカでかい不具合かと思ったけど、そうじゃないらしい。
OpenGLのglDrawPixelsを確認したら適切に間違ってた。

ref_gl.glDrawPixels(xsize,ysize,GL.GL_BGR,GL.GL_UNSIGNED_BYTE,buf);

とりあえず動かしたときに忘れてたんだな…。

このバグの影響は以下の通り

  • NyARToolkit自体はBとRを入れ替えた形で評価してる。
  • 白黒マーカーの場合は認識率が落ちる影響があると思う。
  • カラーマーカーの場合は正しく認識しない・・・と思う。

JMFからRGBの順で並んだデータをとる方法を探さないと…。

追記

VideoFormatをjavax.media.format.RGBFormatにして、blueMaskとかその辺を調べれば良いみたいだ。

追記

修正のためにクラス構造をほんの少しいじるので、既存コードに数行の修正を入れる必要があるかもしれません。

詳しくはまた後で説明書書きます〜

修正したら

マーカーの認識精度が判るくらいよくなった。
・・・やっぱ値ずれてたんだな・・・。