学习研究过程中总是要走不少弯路,在c#中我们用的picturebox或者其他控件的图片都是以image行式加载进来的,如果我们想把这个图片传给一个 OpencvSharp.mat ,是不能直接赋予的,会提示system.drawing.bitmap无法隐式转换为OpencvSharp.mat类型;其实OpenCvSharp.Extensions中有个直接转换的类和函数可供使用就是BitmapConverter,给有需要的人。
public void ToMat()
{
Bitmap bitmap = new Bitmap("123.PNG"); // width % 4 != 0
Mat converted = BitmapConverter.ToMat(bitmap);
//Mat converted = Mat.FromBitmap(bitmap);
using (new Window("Bitmap to Mat test", converted))
{
Cv2.WaitKey();
}