Search code examples
cimagelabview

Structure of 16-bit grayscale image to be generated in C or LabView


I have a kind of basic (but still unresolved) problem. I'm building a program in LabView in which I gather a large amount of measurements into a n x m matrix, and I need to convert that matrix into an image to be processed/analyzed with ImageJ. Due to resolution and the kind of analysis I need, this has to be a 16-bit grayscale image.

Now, the problems I'm facing are the following: LabView does not have (on the basic package) any VI to transform data into 16-bit grayscale, only 8-bit, which kills my dynamic range. I've read around that the Vision and Image toolboxes of LabView might have more options in that sense, but for company-related reasons I cannot access these toolboxes (i.e. I have to make do with the Full Developer version only).

My reaction at the moment is to try and build on my own a VI to build a 16-bit grayscale image, whether by using standard LabView functions, entirely with C code, or mixtures of both. However, I haven't found any clear-enough information on the web regarding how a 16-bit grayscale is structured, what data is needed, etc.

So, my question is twofold: does anyone have a better way of creating this 16-bit grayscale image (some LabView VI I've skipped, external software I can invoke, etc.)? If not, does anyone have detailed information or code useful to generating such an image from scratch?

Any help will be really useful! Thanks!


Solution

  • Install IMAQ module (different than the vision toolbox), it is free and has basic image management capabilities. I use it for creating 16 bit grayscale images.

    Creating 16bit grayscale image

    Find IMAQ driver here (4.6.4 as of June 2012).