Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Display resolution for grayscale images

It has been several years since we developed an X-ray inspection system in LabVIEW.  This system is still running adequately but could be improved.  One of the limitations of the development environment was that LabVIEW could only display up to 8-bit grayscale in the display vis.  I found a note with a recent date that seems to indicate this limitation hasn't changed.  I would appreciate some advice on how to best display grayscale video from an X-ray system.  In our previous application, we used the image processing vis to operate on 16-bit images, and we used a camera for X-ray image intensifiers that output 10 or 12-bit grayscale.  I am interested in using a higher resolution monitor designed for medical imaging that can display 10-bit grayscale.  We aren't likely to need to do complex image processing.  We probably will be doing background subtraction and applying an averaging filter.  Also, I haven't spent much time researching the DICOM and DICONDE standards, but I would like to comply with those standards as much as possible (this is an industrial inspection, so DICONDE is the most relevant).  I would like to hear if anyone has a similar application and how you have addressed these issues.

0 Kudos
Message 1 of 9
(3,109 Views)

Hi jtrout,

 

Take a look at the link below:

Image Display with IMAQ/Vision Part II - 16-bit Image Issues

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P8prSAC&l=en-US

Jiwhan S.
Technical Support Engineer
National Instruments
0 Kudos
Message 2 of 9
(3,078 Views)

Hi Jtrout,

I am doing 16bit image display in my application.

LabVIEW display automatically scale the image into 8bit and do auto adjust of the contrast and intensity when you are doing 16bit display.

I would don't know how it will behave with 10bit medical display that has higher dynamic range. 

I would be very interested to hear from you what you find out.

We are using standard display in our machine so there is no issue displaying 16bit image. 

  

Amit Shachaf
0 Kudos
Message 3 of 9
(3,074 Views)

From what I understand now, nobody uses 10-bit grayscale for displaying real-time X-ray video.  I do believe many still X-ray imaging systems (for example mammography) use the full range of the 10-bit grayscale medical displays.  There appear to be other advantages to the medical displays that help guarantee consistent, measurable image quality.  For our application, we decided to use standard monitors with 8-bit grayscale.  I would be curious to know if and how it would be possible to display a full 10 bits with LabVIEW.  In our application, we use the 16-bit image type all the way up to the point where we display the image, and then it needs to be dumbed down to 8 bits.  I have been told that the human eye cannot perceive more than 8 bits of resolution, but I also have read that it can make a difference if you have more information available on the display.

0 Kudos
Message 4 of 9
(3,064 Views)

Hi

Your display will only handle 8 bits of resolution. At the moment it shows 8 bits of red, green and blue. To show an image in grey scale all of the red, green and blue are set to the same value.

Medical imaging can use a standard known as DICOM where the information(up to 16 bit is available in the image but you can change the gain and offset of the scaling gradient so that you can view the grey-scale range in more or less depth for a particular range. It may be worth implementing something like this.

 

Good luck

Mike

0 Kudos
Message 5 of 9
(3,048 Views)

Hi Mike,

When converting from RGB to Gray level you need to use special equation.

They are not all the same. The equation represent the human eye perception.  

https://www.tutorialspoint.com/dip/grayscale_to_rgb_conversion.htm

https://en.wikipedia.org/wiki/Grayscale

I prefer to use the Matlab equation: 

https://www.mathworks.com/help/matlab/ref/rgb2gray.html

I = 0.299 * R + 0.587 * G + 0.114 * B

 

Amit Shachaf
0 Kudos
Message 6 of 9
(3,037 Views)

Hi Jtrout,

I was use to work on X-Ray medical in the past. There is a lot more to those displays then just the gray level resolution.

We use to use Barco displays for the Dr. diagnostics.  We used to use standard display for the User UI.

https://www.barco.com/en/products/medical-display-systems

I haven't been working on this application for many years. We also used to write the software in C++. I never tried in labVIEW.

You might want to call some of those companies and ask them to get more information.

I just want to comment that to use those dispalies it should be high end application. Those are very expensive.

 

 

 

Amit Shachaf
0 Kudos
Message 7 of 9
(3,035 Views)

 I would be curious to know if and how it would be possible to display a full 10 bits with LabVIEW.

This is not a LabVIEW problem, it's the same for other programming languages on the Windows.

 

2^10 = 1024 = 4 x 256

If you convert gray image to "color", then you can have all 1024 levels.

1st 256 levels: blue

2nd 256 levels: green

3rd 256 levels: red

4th 256 levels: gray

almost all levels.

 

George Zou
0 Kudos
Message 8 of 9
(3,033 Views)

256 level is a property of the display card. 

Standard display card has D/A (Digital to analog) of 8bit (256 gray level).

If speciality display card will have 10bit D/A then it will be able to display 10bit per channel. 

It is very well can be done on Medical Display.

If you look at the Barco display card spec you will notice that it can support 10bit per channel

https://www.barco.com/en/product/mxrt-5600#specs

Amit Shachaf
0 Kudos
Message 9 of 9
(3,024 Views)