Bitmapを読み込んで画像中にCv2.Lineなどで描画して保存したら色指定を無視されて白く描画されてしまいました。
色を出して保存は出来ましたが、原因までは辿り着いてません。
using OpenCvSharp.Extensions;
~~
Bitmap bmp = new Bitmap(@"C:\hoge.bmp");
var mat = BitmapConverter.ToMat(bmp);
Cv2.Line(nat, x1, y1, x2, y2, Scalar.Red);
//赤い線が描画されていることが確認できる
Cv2.ImShow("show", mat);
//赤かったはずの線が白くなる!!
var saveBmp = BitmapConverter.ToBitmap(mat);
saveBmp.Save(@"C:\out.bmp");
//ImWriteしてみるがこちらも白くなる
Cv2.ImWrite(@"C:\out.bmp", mat);
取り急ぎの対策は読み込み時にBGRに変換してやれば良い。
var mat = BitmapConverter.ToMat(bmp).CvtColor(ColorConversionCodes.RGB2BGR);
どうも一番初めにBitmapで読んだときに、
MatのColorがRGBになっている様で、LineはBGRで描かれる?
Matの中にRGBとBGRが共存している・・・?
ような印象です。
ソースまで読んでないのでなんとも言えませんが。
所でMatの色情報を後から調べるにはどうしたらいいのでしょうか??
こういうところが分かっていないので躓くんですね・・・。
しかし、ImShowでは色が見えるのにBitmap出力したらに色が消えてしまうなるのは罠だと感じました・・・。