OpenCVを語る上でどうやっても外せないのが「Matクラス」です。
何かというと、「Matクラスは,実際のデータへのポインタと,様々なプロパティ(幅,高さ,ビット深度など)を保持します。」だそうです。もう見るからに気難しい、奥が深そうなヤツです。
深入りするのはやめときましょう。
取りあえずMatを作成してみて、ただ真っ赤なだけのBitmapを描画してみましょう。
コンストラクタは以下。
Mat(Size size, int type, Scalar s)
※デフォルトコンストラクタでnewして、create(Size size, int type)とsetTo(Scalar scalar)メソッドで後からも設定出来る模様。
1.Matを作成する
Size size = new Size(20, 20); int type = CvType.CV_8UC3; Scalar scalar = new Scalar(0, 0, 255); Mat mat = new Mat(size, type, scalar);
2.matToBitmapでMatをBitmapに変換して描画する。
Bitmap bitmap= Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(mat, bitmap); ImageView iv = (ImageView) findViewById(R.id.imageView1); iv.setBackgroundColor(Color.GRAY); iv.setImageBitmap(bitmap);
3.実行
!!
・・・・
な、何ですか?このサイケデリックな模様はwwwww
20×20の真っ赤な画像が表示される予定だったのに。。。
4.今日のところはあきらめる
気難しいMatさんなのかSizeなのかScalarなのか、そもそもcreateBitmapのあたりが問題なのか。。
解決しないまま夜は更けていくのです。。
0 コメント:
コメントを投稿