2015-08-10 2 views
1

Поначалу я пытаюсь получить изображение своего лица из базы данных, но я не могу его получить. Говоря, что я не могу преобразовать System.Drawing.Image в EmguCV Gray Byte. Могу ли я узнать, в чем моя ошибка. Это мой первый раз, когда я использую EmguCV.Невозможно преобразовать System.Drawing.Image в EmguCV

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

name = recognizer.Recognize(result); 

Это мой DB Код:

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; 
     } 
    } 

Спасибо.

ответ

0

Ну, это проблема преобразования.

Если вы используете изображения, как этот

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

инициализируется как это, то вам нужно позвонить image.Bitmap, чтобы получить System.Drawing.Image

Если вы пытаетесь сделать наоборот вы должны назвать что-то вроде этого

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

Тогда ваш код должен работать правильно.

Надеюсь, это поможет!