LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Save image as it show on display without changing the scale

Then use the picture functions to get only the image part.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 21 of 33
(1,094 Views)

It might be worth going back to your original plan, but fixing the data flow problem.

 

Remember that if a wire goes to two or more destinations, then YOU DON'T KNOW which one will execute first.

If you don't care, that's fine, but if you DO care, you have to ensure the execution order somehow.

Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 22 of 33
(1,093 Views)

Thanks for all your kind replies!

I am sure Image subset will do the job, but I've already lost information after the invoke note. As you can see from the picture shown above, the size of the original image is 6420*7480 pixels. Now the size of the saved image after invoke node is only 725*566 pixels without compression. This is not ideal for my later analysis. No information should be filtered during the collection stage.

0 Kudos
Message 23 of 33
(1,092 Views)

The image displayed in IMAQ Ctrl is a 16 bit gray scale image.  If you saved the image successfully, you should be able to load and display it with IMAQ.

Not sure about Windows 10, but previous Windows can only display 8 bit gray scale image.  Most image applications don't support 16 bit gray scale images.

If you use Invoke Node to save the image, you will get an 8 bit image, which might not be the same as displayed.

You lost over 99% of gray scale levels when convert from 16 to 8 bit.  The image quality depends on the conversion method.  IMAQ does the conversion for you automatically before display.

A screen capture should give you an 8 bit image looks exactly the same as displayed.

 

George Zou
Message 24 of 33
(1,087 Views)

Thanks for you reply! What I need is to save the image with good brightness contrast to see the features in image, but without losing any information. So convert it from 16 bit to 8 bit is not ideal. I need to process the image data later in Matlab for analysis.

Cheers. 

0 Kudos
Message 25 of 33
(1,071 Views)

I agree - the INVOKE NODE method is not ideal for such a large picture.

 

I'm unclear as to whether you tried your original plan (using IMAQ save) with the data flow problem fixed.

Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 26 of 33
(1,061 Views)

Don't convert then.

Stick with IMAQ, save to 16 bit image for later use.

 

George Zou
0 Kudos
Message 27 of 33
(1,055 Views)

Sadly no. I remove the disposal function from the program, now the data should only go to Display and IMAQ write file 2, but still the saved image is pretty dim. I also tried save the image from the display, still does not help.

0 Kudos
Message 28 of 33
(1,045 Views)
Look into Why Can I Not Save an I16 Image With an IMAQ Palette (Temperature, Binary, etc...)?: http://digital.ni.com/public.nsf/allkb/1E2B138843AF58D9862579D4006E373A
Thanks
uday
0 Kudos
Message 29 of 33
(1,042 Views)

I don't know IMAQ, so I'm out of my element.

 

here's something to try:

 

If you know ahead of time how big your image is, then set another IMAGE indicator to that size and feed your image to it.  Then use the INVOKE NODE, set it to 16-bit depth and save from there.

I don't think you can hide the huge image (invisible), but you can put it on another tab that isn't showing all of it.

That should give you a 16-bit image of the real size.

Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 30 of 33
(1,035 Views)