Jump to content

IMAQ vision real units


Recommended Posts

Hi folks ,

I am new to this forum, but an oldie as LabVIEW programming is concerned.

Yet I can't seem to find an easy way to tell IMAQ Vision to use real_world coordinates and sizes.

For example if I use the particle analysis I get can particle coordinates and sizes,

but they are in pixel-units. I would like to get um's or um2's ,

is there an easy way to tell IMAQ that it should convert pixels to um's (with my own scaling e.g. 1 pixel = 5 um's),

There is an image-calibration option that seem to do such a thing but that is far to complicated.

If it matters: I use LabVIEW 7.1 and IMAQ Vision 7.1.1 on an windows XP system .

Any help is appreciated,

René

Link to comment

QUOTE(ramekers @ Aug 29 2007, 01:29 PM)

There is an image-calibration option that seem to do such a thing but that is far to complicated.

If it matters: I use LabVIEW 7.1 and IMAQ Vision 7.1.1 on an windows XP system .

Any help is appreciated,

René

Hello René,

Have you checked the example VIs ? There are a couple of them to demonstrate how to use the IMAQ function for calibration, and they don't look that complicated (I just had a look at the example VIs, I never indeed used them for an application).

I suggest you launch the example finder (Help > Find Example), search gor "calibration" and see if it helps.

Good luck, hope this helps

Link to comment

Use IMAQ convert Pixels to Real-World in the Calibration pallet under Vision Utilities. But you must pass a calibrated image to this VI before you can get valid results.

Calibration is as simple as marking a Region of Interest on the picture and defining its vertical and horizontal size in real-world coordinates (Use IMAQ Simple Calibration). You can get fancy using a non-linear calibration by taking a picture of a grid of dots and specifying the grid spacing. Once you have the calibration data you can transfer this to a real-world image (they must obviously be of the same size) using IMAQ Set Calibration Info.

The idea here is to leave calibration info as part of an IMAQ image. So you don't have to carry around a large (potentially) 2d array of numbers in your code. the IMAQ image reference (for the calibrated image) is a pointer to this data in memory. You can use the Calibration VI's to access parts of this data as required. This way, when performing calculations in calibrated units, the routines only access parts of this data (using the user-specified ROI information), substantially speeding up processing. It is also a good way to hide the nitty-gritty of pixels<->real-world units, and use either as required.

You really should go through the examples some more.. there are a lot of good pointers there, though they are definitely not examples of good LabVIEW style, being coded mostly in sequence structures.

Also read the calibration chapter of the IMAQ Vision Concepts Manual. In my opinion it is one of the best-written NI manuals out there. The latest version is July 2007 (includes explanations of the new edge finding routine introduced in Vision 8.5).

Neville.

Link to comment

Thanks Neville, I think this should help,

strange thing is that the IMAQ Vision for LabVIEW VI reference Help concerning "simple calibration" seems to be wrong,

it suggests different inputs then are really there in the VI.

I should report this error to NI.

René

QUOTE(Neville D @ Aug 29 2007, 06:56 PM)

Use IMAQ convert Pixels to Real-World in the Calibration pallet under Vision Utilities. But you must pass a calibrated image to this VI before you can get valid results.

Calibration is as simple as marking a Region of Interest on the picture and defining its vertical and horizontal size in real-world coordinates (Use IMAQ Simple Calibration). You can get fancy using a non-linear calibration by taking a picture of a grid of dots and specifying the grid spacing. Once you have the calibration data you can transfer this to a real-world image (they must obviously be of the same size) using IMAQ Set Calibration Info.

The idea here is to leave calibration info as part of an IMAQ image. So you don't have to carry around a large (potentially) 2d array of numbers in your code. the IMAQ image reference (for the calibrated image) is a pointer to this data in memory. You can use the Calibration VI's to access parts of this data as required. This way, when performing calculations in calibrated units, the routines only access parts of this data (using the user-specified ROI information), substantially speeding up processing. It is also a good way to hide the nitty-gritty of pixels<->real-world units, and use either as required.

You really should go through the examples some more.. there are a lot of good pointers there, though they are definitely not examples of good LabVIEW style, being coded mostly in sequence structures.

Also read the calibration chapter of the IMAQ Vision Concepts Manual. In my opinion it is one of the best-written NI manuals out there. The latest version is July 2007 (includes explanations of the new edge finding routine introduced in Vision 8.5).

Neville.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.