前回良く分からないながらにMatを触ってみましたが、以下のようなサイケデリックな結末を迎えたままでした。
※20×20ピクセルの赤い四角が表示されるはずでした。
サイケな世界に軽く心を奪われかけたところで、何が悪いのか色々と調べてみたところ、MatではBGRAのBitmapになっているようで、Bitmapに変換する前にImgproc.cvtColor(Mat src, Mat dst, int code, int dstCn)でRGBAへ変換する必要があるようです。
Mat matBGRA = new Mat(size, type, scalar); Mat matRGBA = new Mat(); Imgproc.cvtColor(matBGRA, matRGBA, Imgproc.COLOR_BGRA2RGBA, 4);
また、出力したBitmapがImageViewのサイズに勝手に合わされてしまわないように、setScaleType(ScaleType.CENTER)で自動伸縮しないよう設定します。
うまくいきました!
ついでにSizeとScalarの引数を変更して、意図した変化があるかやってみました。
Size size = new Size(30, 30); Scalar scalar = new Scalar(0, 255 , 255);
意図したとおりになりました。
ということで、サイケな世界からの離脱は名残惜しいものの、前回謎のままにしていた部分はこれでクリアです。
始めまして
返信削除参考にさせていただいて、http://blog.goo.ne.jp/nobotta50 にも書きましたが、ようやくMatを使って表示できました。
ありがとうございました。