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

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

NyARToolkitCSのバグ

2.0実装時に、NyARToolkitCSにダメなバグが見付かったので、修正しました。
修正版は、NyARToolkitCS-1.1.2としてリリース済です。

不具合内容

マーカー比較のときにピクセルのRGB値をとるところが間違っていて、Bの単色のみを取っていました。

該当コードは、DsXRGB32Raster.csにあります。

DsXRGB32Raster.cs

間違い

    /*
     * DirectShowから受け取った、XRGB32ラスタデータを保持するNyARRasterです。
     */
    public class DsXRGB32Raster : NyARRaster
    {
        private const int INDEX_R = 0;//この辺がおかしい
        private const int INDEX_G = 0;//この辺がおかしいおかしい
        private const int INDEX_B = 0;
        private int m_stride;
        private int m_width;
        private int m_height;
        private byte[] m_rgb_buf;
        public byte[] buffer

修正後

    /*
     * DirectShowから受け取った、XRGB32ラスタデータを保持するNyARRasterです。
     */
    public class DsXRGB32Raster : NyARRaster
    {
        private const int INDEX_R = 2;
        private const int INDEX_G = 1;
        private const int INDEX_B = 0;
        private int m_stride;
        private int m_width;
        private int m_height;
        private byte[] m_rgb_buf;
        public byte[] buffer

大した修正ではないので、手書きで直しても大丈夫です。