Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

How to control 16 bit display mapping in real time?

Hello!

I'm working on a machine vision program that continiosly acquires 10-bit  images from CameraLink camera  (LabView 7.1 & Vision). I need to adjust 16 bit display mapping in real time.

I used HL Grab.vi example as a starting point. I created an image display property node with three items: 16-bit display conversion method, 16-bit display maximum and minimum values, and I'm writting desired values to it using three front panel controls. To verify this operation, I'm reading the same values from another image display property node, and I use a sequence to make sure that I'm writting the desired parameters to the property node before reading them for a verification.

I found that by writting desired values to the image display property node I can modify display conversion method, but not the actual min and max values of the desired given range or given percent range! I mean, changing values wired to the min/max lines of the property node produces no effect at all. What could be wrong???

Also, I was trying to use the IMAQ BCGLookup for the same goal, but it did not work as well. Does it work with 16-bit images?

Please help! Thanks.

Pavel
0 Kudos
Message 1 of 4
(4,592 Views)
Hi,
 
In your example, you connected the # of shifts to the 16-bit display maximum value. That's why it doesn't work.
IMAQ BCGLookup does not work on 16-bit images.
 
Best regards,
 
Christophe
NI Vision Software
 
Message 2 of 4
(4,577 Views)
>In your example, you connected the # of shifts to the 16-bit display maximum value. That's why it doesn't work.

Dear Christophe,

Thanks for pointing me to the wrong connection. I feel so sorry. 

But the problem is that this approcah (writting to the property nodes) still does not work! I attached the corrected VI, where from reading the image display properties II can see that the required parameters are changing properly, BUT the actual image DOES NOT CHANGE!  I did try it many times before sending the support request. Could you please help me to solve this mystery.

Pavel
0 Kudos
Message 3 of 4
(4,574 Views)
Hello,
 
I have examined your VI and have determined the necessary modification to get the 16-bit mapping to work on the fly.  The IMAQ Grab Acquire VI has a subVI that specifies the bitdepth of the image in LabVIEW based upon whether or not the number of bits/pixel for the acquired image is 16 or some value between 8 and 16.  This VI modifies the bitdepth in such a way that we need to make a call to IMAQ Image Bit Depth immediately after calling IMAQ Grab Acquire.  Doing this will update the bit-depth of the image that is being displayed.
 
This only has to be done when the IMAQ Grab Acquire or IMAQ Copy Acquired Buffer functions are used.  If you are using a low level ring acquisition, then this would not be necessary.
 
I have attached a modified version of your code that uses the IMAQ Image Bit Depth function.  Take a look at it and let me know if you have any additional questions on this issue.
 
Regards,
Scott R.
Applications Engineer
NI
Scott Romine
Course Development Engineer
National Instruments
Message 4 of 4
(4,536 Views)