LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Imaging with Intensity Graphs

Hello, I am currently trying to readout a 240X320 ccd chip using LabVIEW. What I need to do is take the signal coming out from the video line and convert the voltages from the pixels to an intensity chart based on a trigger (read out a pixel per trigger pulse). Basically, I'm trying to take a picture straight from the chip and display it on the intensity chart. I do not have the hardware available for using IMAQ, so that is out of the question. The example for common intensity charts does not help all that much either, since swapping the X-Y input for a DAQ Assistant or an AI function yeilds no results.

Hopefully I am phrasing this question correctly. I'm rather new to LabVIEW. Any idea's?

Heather
0 Kudos
Message 1 of 8
(3,527 Views)
You don't say what DAQ hardware you have, but if you can arrange an external CLOCK (different from external TRIGGER), then you're all set.

If there's a once-per frame trigger - wire it to the ext. trigger input of your DAQ card.
Wire the pixel clock to the ext. clock input.

Start a DAQ operation, specifying ext. trigger, ext. clock and 76800 samples to acquire. Use the binary output data, not the volts (unless you specifically need volts). When it's done, you'll have to reshape the array from 76800x1 into 240x320.
Feed that array (maybe transpose it) into an intensity graph, and you're there.

You probably should use an intensity GRAPH, not a chart, to start out with.
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


LinkedIn

Blog for (mostly LabVIEW) programmers: Tips And Tricks

Message 2 of 8
(3,527 Views)
> Basically, I'm trying to take a picture straight from the chip and
> display it on the intensity chart. I do not have the hardware
> available for using IMAQ, so that is out of the question. The example
> for common intensity charts does not help all that much either, since
> swapping the X-Y input for a DAQ Assistant or an AI function yeilds no
> results.
>

This is pretty much what the intensity graph is there for, to do color
mapping on gridded measurements.

If you want to write the values a row or a few rows at a time, you might
want to use the intensity chart. If you are going to gather all data,
then plot it, you want the intensity graph. Charts remember what was
previously written to them, like paper chart recorders, whereas graphs
show
only the latest data written to them.

Let's say you are using the intensity graph. Make your 240 by 320
measurements, put them into a 2D array using either autoindexing or
build array, and wire th2 numeric 2D array to the intensity graph. You
might want to turn on Z Scale Autoscaling so that the intensities are
normalized to the color scale. You can them play with the color scale
either directly or programmatically. For a simple grayscale, just
delete the 50 blue marker. To add other colors to draw through, add
markers and set their color to something else. If you want sharp
transitions, you can either turn off interpolation, or set two markers
close to one another with distinct colors. Finally, you can build your
own color table and set that using the properties -- this is also useful
for eight bit color bitmaps.

Greg McKaskle
0 Kudos
Message 3 of 8
(3,527 Views)
Sorry, I seemed to have interchanged the word graph with the word chart. I have attempted to do this, however using DAQ Assistant for Analog Input, I cannot choose binary output. The card I am using is a PCI-MIO-16E-4 (the other two we do have are not supported by NI-DAQmx in LabVIEW 7), and the breakout box is an E-series. Binary may not be appropriate, as we need to know how 'hot' a pixel is, which is why I stuck with voltage. However, using hex or something of the like would definately be worth a try.

Thanks for your help so far.

Heather
0 Kudos
Message 4 of 8
(3,527 Views)
Would that be measurements sent to file and then extracted for building the array in LabVIEW?

-Heather
0 Kudos
Message 5 of 8
(3,527 Views)
OK, that card will do external triggering and external clocking.

I don't know about DAQ assistant, but the lower-level calls will output binary. That's not a big deal though - it's a speed improvement. It'll give you the exact same picture, but you won't be able to read out in absolute units.

If you have the two clock signals coming out of he chip, you should be able to make it work.

Have you made any progress?
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


LinkedIn

Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 6 of 8
(3,527 Views)
There's no reason to write a file and then read the file just to plot it, is there?

You need these steps, basically:

1... Setup external trigger, external clock, 76800 samples (320x240), 1 channel.
2... Acquire the data. This will come in an array of 76800 x 1 channel.
3... Re-shape the array (there's a function for this) into 320 x 240.
4... Feed this array to the intensity graph.
5... Go to 2
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


LinkedIn

Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 7 of 8
(3,527 Views)
Yes, I finally got things working. When I tried these suggestions at first, I had nothing, which is why I gave more info. Ends up we had clock problems, and after fixing that things fell in place. I also changed the color scale to shades that allow me to make out the image better. Thank you very much for your help, I appreciate it!

Heather
0 Kudos
Message 8 of 8
(3,527 Views)