无法将System.Drawing.Image转换为EmguCV

时间:2015-08-10 07:49:27

标签: c# emgucv

当然,我正试图从数据库中获取我的脸部图像,但我无法得到它。它说我无法将System.Drawing.Image转换为EmguCV Gray Byte。我能知道我的错误吗?这是我第一次使用EmguCV。

 //Eigen face recognizer
 EigenObjectRecognizer recognizer = new 
 GetFaceFromDB(), //database
 labels.ToArray(), //facename list
 3000,
 ref termCrit);

 name = recognizer.Recognize(result);

这是我的数据库代码:

private Image GetFaceFromDB()
    {
        Image FetchImg;
        if (rowNumber >= 0)
        {
            byte[] FetchImgBytes = ((byte[])TSTable.Rows[rowNumber]["FaceImage"]);
            System.IO.MemoryStream stream = new System.IO.MemoryStream(FetchImgBytes);
            FetchImg = Image.FromStream(stream);
            return FetchImg;
        }
        else
        {
            MessageBox.Show("No Image yet. Add image into database");
            return null;
        }
    }

谢谢。

1 个答案:

答案 0 :(得分:0)

问题在于转换。

如果您使用的是这样的图像

Image<Gray,Byte> image = new Image<Gray,Byte> 

像这样初始化然后你需要调用image.Bitmap来获取System.Drawing.Image

如果你试图反过来,你应该打电话给这样的事情

Image<Gray, Byte> image = new Image<Gray, Byte>(BitmapImage); 

然后你的代码应该正常工作。

希望这有帮助!