LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
GregSands

Direct access to Image data as an Array

While the Image datatype is very useful for working with images, there are many functions that are not available (e.g. Square Root, or the Wavelet Transforms).  In order to achieve this, it is necessary to convert the Image to an Array, thereby duplicating the memory required, and then convert back again.  (IMAQ GetImagePixelPtr/IMAQ MemPeek also duplicates data).  I would like to be able to directly access the Image data as a LabVIEW Array.  Perhaps the In Memory structure could be used to achieve this, e.g.

ImageInPlace.png

 

One potential problem is the extra information (border pixels) which are part of Images - for most use cases it would probably be ok to retain these (i.e. the array is larger than the image, though perhaps there could be an option as to whether they are mirrored or zero etc. RGB images would provide an array of U32/64, but even better might be a cluster of arrays for each colour plane.

 

Bonus points for the ability to access an Array of Images as a 3D Array!

 

4 Comments
Josh Meisner
Member

That would be an extremely helpful feature for a variety of image analysis. Nice idea!

Intaris
Proven Zealot

This would be cool

GregSands
Active Participant

Looks like this idea has been provided without fanfare in recent versions of Vision (since 2013 SP1 by the looks) with the IMAQ ImageToEDVR VI.  Using it is a little complicated, but it looks like it does flexibly handles the various border and padding options. 

 

ImageToEDVR.png

Darren
Proven Zealot