EMGU Grey TColor,UInt16深度

时间:2015-11-09 12:03:14

标签: c# arrays image-processing emgucv

我有一个12位灰度相机,我想用EMGU来处理图像。

我的问题是我想在“UInt16”TDepth处理图像而不是通常的“字节”

所以最初我创建了一个空的2D图像:

Image<Gray, UInt16> OnImage = new Image<Gray, UInt16>(960, 1280); 

然后我创建一个for循环,将我的Image从1D矢量形式传输到2D图像:

 for (int i=1; i< 960; i++)
    {
        for (int j = 1; j < 1280; j++)
        {
            OnImage[i, j] = MyImageVector[Counter];
            Counter++;
        }
    } 

其中:

int[] MyImageVector = new int[1228800];

问题在于:

OnImage[i, j] = MyImageVector[Counter];

我收到以下错误消息:

  

无法将类型“int”隐式转换为“EMGU.CV.Structure.Gray”

为什么会这样?

您知道我可以将Int值存储到Emgu Image对象的任何方式吗?

任何替代解决方法也会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

我找到了一种将1D矢量传递到2D EMGU的替代解决方案。图像:

Image<Gray, Single> _myImage= new Image<Gray, Single>(Width, Height); 
Buffer.BlockCopy(MyVector, 0, _myImage.Data, 0, MyVector.Length * sizeof(Single));

这比2 for for循环更快......