当然,我正试图从数据库中获取我的脸部图像,但我无法得到它。它说我无法将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;
}
}
谢谢。
答案 0 :(得分:0)
问题在于转换。
如果您使用的是这样的图像
Image<Gray,Byte> image = new Image<Gray,Byte>
像这样初始化然后你需要调用image.Bitmap来获取System.Drawing.Image
如果你试图反过来,你应该打电话给这样的事情
Image<Gray, Byte> image = new Image<Gray, Byte>(BitmapImage);
然后你的代码应该正常工作。
希望这有帮助!