Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Why do images auto-scale the intensity and how do I disable this?

Solved!
Go to solution

Dear sirs 

 

I am displaying an image from a FireWire camera (collected with "IMAQdx Get Image.vi") in an image indicator (Vision->Image Display) on the front panel. When the intensity distribution changes, the overall intensity seems to auto-scale. But if change the intensity in one part of the image and I put a cursor in another part of the image, the Image Information box tells me that the pixel value does not change even though the visible intensity of the indicator changes.

 

I have also made a comparison with the "good old" intensity graph. Then I have to use "IMAQdx Get Image Data.vi" and unwrap the data array before presenting the image in the intensity graph. If I turn off AutoScale Z, one part of the image does not affect the rest, but if I turn it on, the image behaves like the Image Display above. Evidently, there is some kind of auto-scaling in the Image Display.

 

Can someone tell me if and how I can turn off this auto-scaling?

 

Best regards

/ Leif Nyholm

0 Kudos
Message 1 of 4
(6,309 Views)

This happens when 16 bit images are converted to 8 bits for display.

 

Right click on your image display and select "16 bit display mapping" and change to downshift.  Pick the right number of shifts for your image so that the 8 most important bits are displayed.

 

Bruce

Bruce Ammons
Ammons Engineering
Message 2 of 4
(6,296 Views)

Thank you Bruce. However I don't understand how the shifting works, you've led me into the right track.

 

As you wrote, using downshift "disables" the auto-scaling. This seems to reduce the dynamics; copied from the Vision help for "IMAQ WindDisplayMapping": "Because 16-bit grayscale images cannot be displayed with their full resolution on 32-bit color displays using common video adapters limited to 8-bit resolution/per pixel/color, 16-bit images need to be mapped to the 8-bit range (0 to 255)."

 

My interpretation is that the resolution of the grayscale is limited. But if I choose Palette->Rainbow to avoid the limited dynamics of the grayscale, shouldn't the rainbow have a large dynamic range as it uses colours? Using Rainbow still makes the image intensity "auto-scale" and the same happens for Gradient and Temperature.

 

However I can solve this specific problem, I don't understand how it works and this annoys me. Is there anyone who can shed some light on this?

0 Kudos
Message 3 of 4
(6,271 Views)
Solution
Accepted by topic author LeifN

All of the palettes are applied to 8 bit grayscale images, so the 16 bit image is converted to 8 bit before applying the palette.  You are correct that it would be nice to be able to apply a rainbow palette to the original 16 bit image, but that isn't available.  You could probably write your own routine that would use a custom lookup table to convert the 16 bit image to a color rainbow image, but it probably wouldn't be worth it.  The final image would most likely look exactly like the current image.

 

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 4 of 4
(6,249 Views)