我有一个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对象的任何方式吗?
任何替代解决方法也会有所帮助。
谢谢
答案 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循环更快......