Convertir un byte[] dans un Emgu/OpenCV Image

J'ai un tableau d'octets représentant une image en niveaux de gris que je voudrais utiliser avec openCV en C#, à l'aide de la Emgu wrapper. Je suis à essayer de comprendre comment le convertir en un Emu.CV.Image sans d'abord le convertir en un System.Drawing.Bitmap.

Jusqu'à présent, cette constructeur de Image semble prometteuse. On dirait qu'il prend le pixel de lignes, de colonnes, et ensuite le tableau avec mes données pour construire une image. Cependant, il veut dans une drôle de format et je suis aux prises avec la façon de créer correctement la TDepth[,,] data argument.

Voici ce que j'ai à ce jour:

//This gets initialized in the constructor and filled in with greyscale image data elsewhere in the code:
byte[] depthPixelData

//Once my depthPixelData is processed, I'm trying to convert it to an Image and this is where I'm having issues
Image<Gray, Byte> depthImage = new Image<Gray, Byte>([depthBitmap.PixelHeight, depthBitmap.pixelWidth, depthPixelData]);

Visual studio, il est évident pour moi que de passage dans un tableau ne va pas le couper, mais je n'ai aucune idée de la façon de construire les nécessaires TDepth[,,] objet avec mes données de pixels à passer dans la Image constructeur.

Ce code doit s'exécuter à ~30fps, donc je vais essayer d'être aussi efficace que possible avec la création d'un objet, d'allocation de mémoire, etc.

InformationsquelleAutor QRohlf | 2015-03-19