旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【OpenCvSharp】 ポインタを利用してMatクラスの画素にアクセスする

OpenCvSharpのMatクラスを走査する時、いつもAtメソッドを利用していたのですが、ポインタを使って走査する方法を見つけたのでメモします。

gist.github.com

リンク先はカラー画像に対して走査していますが、自分はグレースケール画像を走査したかったので、その場合のコード以下のようになります。unsafeキーワードを利用可能にするため、”アンセーフ コードの許可(F)”にチェックを入れることを忘れないで下さい。

unsafe {
    byte* b = mm.DataPointer;
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            byte valueAt = b[0];
            b += 1;
        }
    }
}