如何将.NET Image或Byte Array转换为Emgu.CV.Image <emgu.cv.structure.bgr,=“”byte =“”> </emgu.cv.structure.bgr>

时间:2014-10-26 15:31:55

标签: c# .net opencv image-processing azure-worker-roles

我正在开发一个使用OpenCV库的项目,它使用Emgu.CV.Image作为从相机捕获的图像。

我正在尝试将代码移动到Microsoft Azure Worker Role中以处理云中的图像处理。

我目前的解决方案中有一行代码

//Get the current frame from capture device
   _currentFrame = _grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);

这行代码从相机抓取当前帧并返回类型&gt;的图像。 Emgu.CV.Image

当我将此代码移至云端时,我将无法访问相机设备来抓取帧。

所以我想在我的代码需要来自当前帧的Emgu.CV.Image图像时,从base64图像字符串转换为.Net Image或Byte Array。

我遇到的挑战是我的代码想要使用Emgu.CV.Image,但我现在只有.Net Image,Byte Array或base64图像字符串。我需要将它转换为Emgu.CV.Image,我不太清楚如何去做。

请允许任何人按照正确的方向推动我。

1 个答案:

答案 0 :(得分:3)

这是我最终选择的解决方案

public Emgu.CV.Image<Bgr, Byte> imageToEmguImage(System.Drawing.Image imageIn)
{
    Bitmap bmpImage = new Bitmap(imageIn);
    Emgu.CV.Image<Bgr, Byte> imageOut = new Emgu.CV.Image<Bgr, Byte>(bmpImage);

    return imageOut;
}