

Android (Java) で Mat
型のグレースケール画像から指定した座標の画素値（0～255）を取得する方法がわかりません。使用可能な関数など、方法があったら教えてほしいです。

また Bitmap 型から同様に指定した位置の画素値を数字で取得する方法も教えていただけると嬉しいです。


CC BY-SA 4.0
2022-01-19T01:11:13.950
85783
2022-01-20T07:11:38.250
2022-01-20T06:21:11.763
7290
50968
question
java android opencv
Android で Mat 型や Bitmap 型の画像から画素値を読み取る方法


`Bitmap` から RGBA の `0..255` の値の取得は、[`Bitmap#getPixel(x,
y)`](https://developer.android.com/reference/android/graphics/Bitmap#getPixel\(int,%20int\))
を使って、例えば次のようにすれば可能です：

[code]

    // cf. https://stackoverflow.com/a/26960189/3501958
    int color = bitmap.getPixel(x, y);
    
    int red = Color.red(color);
    int green = Color.green(color);
    int blue = Color.blue(color);
    int alpha = Color.alpha(color);
    
    Log.d(TAG, String.format(
            "(R, G, B, A) = (%3d, %3d, %3d, %3d)", red, green, blue, alpha
    ));
    
[/code]

`Mat` 形式のファイルというのはよく知らないのですが、`Bitmap` に変換してしまえば後は同じことです。どの道 Android
プログラム内では、基本的に画像ファイルは（`PNG` にしても `JPEG` にしても）いずれも `Bitmap` で各種操作をすることになるので。

確認はしていませんが、[OpenCVにてMatからBitmapに変換する](https://gist.github.com/ochilab/5916855)
というコードスニペットを見つけました。


CC BY-SA 4.0
2022-01-20T06:17:37.500
85812
2022-01-20T07:11:38.250
2022-01-20T07:11:38.250
7290
7290
85783
answer