From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reading Large Images In LabVIEW Vision Development Module

Hi,

I am trying to load large images using the LabVIEW Vision Development Module.  Specifically, I am using the IMAQ ReadFile.vi to load an image that is 22108x17615 pixels (389,432,420 total pixels) and has a pixel depth of 32 bits.  When I try to load this image I get the error -1074396159 (not enough memory).  Doing some rough math, I should need approximately 1.6 GB of RAM to load the image (not including any overhead).

 

I am running this code on a Win 10 64 bit computer with 16 GB of RAM.  I should be able to allocate up to 4 GB for a 32 bit application on Win 10 64 bit.  I understand that for images, this must be a contiguous block of memory and this is likely the problem.

 

Subsequently, I tried to load this image using GIMP and it loaded successfully.  I looked at the windows task manager and GIMP was using almost 4GB of memory.

 

I am assuming that GIMP requests a block of continuous memory to load the image.  I am also assuming that the OS has to rearrange memory to accommodate this request.  Again, these are assumptions because I don’t know what’s going on under the hood.

 

Here’s my question: Is there a way to make a similar request through the Vision Development Module or LabVIEW?  Ultimately, I just need to be able to load this large image in LabVIEW.

 

Thanks in advance for your help.

Brooks

0 Kudos
Message 1 of 4
(2,867 Views)

You are, with this single data structure, perilously close to the 4GB memory space for a 32-bit program (I'm assuming you are running LabVIEW 32-bit).  This may be a situation where you want to run LabVIEW 64-bit, which seems to support the Vision Development Toolkit.

 

Bob Schor

0 Kudos
Message 2 of 4
(2,859 Views)

Thanks for your recommendation Bob.  I am upgrading the source code to LabVIEW 2016 64-bit.  However, I would still like to know if anyone knows how to request the OS to give a contiguous block of memory large enough to load these large images.

 

Thanks in advance,

Brooks

0 Kudos
Message 3 of 4
(2,765 Views)

Hi Brooks_LV

 

I'm not all that familiar with the issue you are running into, but I did some research to see if I could find documentation - I think that this white paper may help out:

Managing Large Data Sets in LabVIEW

 

Regards,

 

George B.

Application Engineering

National Instruments

0 Kudos
Message 4 of 4
(2,732 Views)