【问题标题】:Cannot convert System.Drawing.Image to EmguCV无法将 System.Drawing.Image 转换为 EmguCV
【发布时间】:2015-11-02 01:16:16
【问题描述】:

目前,我正在尝试从数据库中获取我的面部图像,但我无法获取它。它说我无法将 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;
        }
    }

谢谢。

【问题讨论】:

    标签: c# emgucv


    【解决方案1】:

    问题在于转换。

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

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

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

    如果你试图做相反的事情,你应该调用这样的东西

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

    那么你的代码应该可以正常工作了。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 2022-01-24
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 2011-01-25
      相关资源
      最近更新 更多