ramekers Posted August 30, 2007 Report Share Posted August 30, 2007 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é Quote Link to comment
LAVA 1.0 Content Posted August 30, 2007 Report Share Posted August 30, 2007 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 Quote Link to comment
Neville D Posted August 30, 2007 Report Share Posted August 30, 2007 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. Quote Link to comment
ramekers Posted August 31, 2007 Author Report Share Posted August 31, 2007 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. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.