将IImage转换为结构体

3
有没有一种方法可以将EmguCV IImage转换为EmguCV结构体?
Image<Bgr, Byte> Frame;           // current frame from camera
Image<Bgr, Byte> Previous_Frame;  // previous frame aquired
Image<Bgr, Byte> Difference;      // difference between the two frames

double ContourThresh = 0.003; //stores alpha for thread access
int Threshold = 60; //stores threshold for thread access

private void ProcessFrame(object sender, EventArgs arg)
{
    if (Frame == null) 
    {
        Frame = imageBox1.Image; //error
        Previous_Frame = imageBox2.Image; //error
    }
    else
    {
        Frame = imageBox1.Image;//error
        Previous_Frame = imageBox2.Image;//error

        Difference = Previous_Frame.AbsDiff(Frame); 
        Difference = Difference.ThresholdBinary(new Bgr(Threshold, Threshold, Threshold), new Bgr(255, 255, 255)); //if value > 60 set to 255, 0 otherwise 

        Previous_Frame = imageBox2.Image;
    }
}

我得到以下错误信息:
错误 14:无法隐式转换类型「Emgu.CV.IImage」为「Emgu.CV.Image」。存在一个显式的转换(是否缺少强制转换?)d:\ece design project\aslt software\aslt software\seatplan.cs 917 25 ASLT Software 我正在尝试获取两个图像框「imageBox1」和「imageBox2」之间的差异。
- 「imageBox1」是从相机捕获的图像进行处理后的结果 - 「imageBox2」是从「imageBox1」中保存到MS Access数据库的图像。
我的目标是在数据库中查找与「imagebox1」匹配的图像。 我的操作是否正确,还有比使用absdiff更好的选项吗?

我通过快照添加了编译器错误,如果做错了,请原谅。 - Mahko Blazedrake
完成了,谢谢,对于错误我很抱歉。 :) - Mahko Blazedrake
感谢您的编辑。 希望有人能帮忙。 - Mahko Blazedrake
请勿发布文字图片。将文字内容作为文本发布(我已经看到您已单独提供了文本,所以您可以删除快照)。 - Sabuncu
@Sabuncu..,完成了先生。谢谢。 - Mahko Blazedrake
1个回答

0

在浏览了一些文章后,我发现了自己问题的答案。

这是我的做法...

            Frame = new Image<Bgr, Byte>(imageBox1.Image.Bitmap);
            Previous_Frame = new Image<Bgr, Byte>(imageBox2.Image.Bitmap);

我在哪里可以找到与你的代码兼容的OpenCV DLL文件? - Mohammad abumazen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接