将多个图像保存到锯齿状阵列

时间:2015-07-10 10:22:29

标签: c# image bitmap emgucv jagged-arrays

我是C#的新手所以如果我的问题的答案非常简单,请原谅我。

我的目标是从我的相机捕获和存储10帧,这样我就可以做一些后期的探索。我正在使用Gige Basler侦察员单色相机。 我知道如何使用while循环获取10个图像。

所以我的问题是如何在while循环的每次迭代中将每个图像保存到相同的锯齿状数组中?

我的目标是将10张图像保存到一个单独的3D锯齿状阵列中。我将锯齿状数组声明为:

UInt16[][,] jaggedArray = new UInt16[10][,];

相机将图像转换为位图格式(m_bitmap)。

使用Emgu我可以将bitmat转换为image(不确定我是否必须这样做):

Image<Gray, UInt16> IMA = new Image<Gray, UInt16>(m_bitmap);

我想要做的是,在每次迭代中,我都可以将获取的图像保存在锯齿状数组中:

itteration 1 :>>      jaggedArray[0] = 1st Image

itteration 2 :>>      jaggedArray[1] = 2nd Image

...

itteration 10 :>>      jaggedArray[9] = 10th Image

但我不知道如何在锯齿状阵列中保存获取的图像或位图(jaggedArray [i] = ???????????)。

我必须将我的图像或位图转换为能够将其存储在锯齿状数组中吗?

如果您对此问题有任何更好的解决方法,请随时告诉我。

拍摄的图像大小为(1280,960)。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我假设你试图用每个循环存储整个图像。因为Emgu Images是一个特定的类,而不仅仅是一个数组,你可以拥有一个包含十个Emgu图像的数组。

Image<Gray, UINT16>[] rawCaptures = new Image<Gray, UINT16>[10];
// some other code...
while(cameraIsRunning && iWantMoreImages)
{
    // more code here...
    Image<Gray, UInt16> IMA = new Image<Gray, UInt16>(m_bitmap);
    rawCaptures[indexOfCapture] = IMA;
}