National Instruments Digital Camera IMAQTM User Manual

TM  
IMAQ  
IMAQ Vision for Visual Basic  
User Manual  
IMAQ Vision for Visual Basic User Manual  
August 2004 Edition  
Part Number 371257A-01  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Important Information  
Warranty  
The media on which you receive National Instruments software are warranted not to fail to execute programming instructions, due to defects  
in materials and workmanship, for a period of 90 days from date of shipment, as evidenced by receipts or other documentation. National  
Instruments will, at its option, repair or replace software media that do not execute programming instructions if National Instruments receives  
notice of such defects during the warranty period. National Instruments does not warrant that the operation of the software shall be  
uninterrupted or error free.  
A Return Material Authorization (RMA) number must be obtained from the factory and clearly marked on the outside of the package before  
any equipment will be accepted for warranty work. National Instruments will pay the shipping costs of returning to the owner parts which are  
covered by warranty.  
National Instruments believes that the information in this document is accurate. The document has been carefully reviewed for technical  
accuracy. In the event that technical or typographical errors exist, National Instruments reserves the right to make changes to subsequent  
editions of this document without prior notice to holders of this edition. The reader should consult National Instruments if errors are suspected.  
In no event shall National Instruments be liable for any damages arising out of or related to this document or the information contained in it.  
EXCEPT AS SPECIFIED HEREIN, NATIONAL INSTRUMENTS MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF  
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. CUSTOMERS RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE ON THE PART OF  
NATIONAL INSTRUMENTS SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID BY THE CUSTOMER. NATIONAL INSTRUMENTS WILL NOT BE LIABLE FOR  
DAMAGES RESULTING FROM LOSS OF DATA, PROFITS, USE OF PRODUCTS, OR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY  
THEREOF. This limitation of the liability of National Instruments will apply regardless of the form of action, whether in contract or tort, including  
negligence. Any action against National Instruments must be brought within one year after the cause of action accrues. National Instruments  
shall not be liable for any delay in performance due to causes beyond its reasonable control. The warranty provided herein does not cover  
damages, defects, malfunctions, or service failures caused by owner’s failure to follow the National Instruments installation, operation, or  
maintenance instructions; owner’s modification of the product; owner’s abuse, misuse, or negligent acts; and power failure or surges, fire,  
flood, accident, actions of third parties, or other events outside reasonable control.  
Copyright  
Under the copyright laws, this publication may not be reproduced or transmitted in any form, electronic or mechanical, including photocopying,  
recording, storing in an information retrieval system, or translating, in whole or in part, without the prior written consent of National  
Instruments Corporation.  
Trademarks  
CVI, IMAQ, LabVIEW, National Instruments, National Instruments Alliance Partner, NI, ni.com, NI Developer Zone, and  
NI-IMAQare trademarks of National Instruments Corporation.  
Product and company names mentioned herein are trademarks or trade names of their respective companies.  
Members of the National Instruments Alliance Partner Program are business entities independent from National Instruments and have no  
agency, partnership, or joint-venture relationship with National Instruments.  
WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS  
(1) NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF  
RELIABILITY SUITABLE FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN  
ANY LIFE SUPPORT SYSTEMS WHOSE FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT  
INJURY TO A HUMAN.  
(2) IN ANY APPLICATION, INCLUDING THE ABOVE, RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE  
IMPAIRED BY ADVERSE FACTORS, INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY,  
COMPUTER HARDWARE MALFUNCTIONS, COMPUTER OPERATING SYSTEM SOFTWARE FITNESS, FITNESS OF COMPILERS  
AND DEVELOPMENT SOFTWARE USED TO DEVELOP AN APPLICATION, INSTALLATION ERRORS, SOFTWARE AND  
HARDWARE COMPATIBILITY PROBLEMS, MALFUNCTIONS OR FAILURES OF ELECTRONIC MONITORING OR CONTROL  
DEVICES, TRANSIENT FAILURES OF ELECTRONIC SYSTEMS (HARDWARE AND/OR SOFTWARE), UNANTICIPATED USES OR  
MISUSES, OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER (ADVERSE FACTORS SUCH AS THESE ARE  
HEREAFTER COLLECTIVELY TERMED “SYSTEM FAILURES”). ANY APPLICATION WHERE A SYSTEM FAILURE WOULD  
CREATE A RISK OF HARM TO PROPERTY OR PERSONS (INCLUDING THE RISK OF BODILY INJURY AND DEATH) SHOULD  
NOT BE RELIANT SOLELY UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE. TO AVOID  
DAMAGE, INJURY, OR DEATH, THE USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO  
PROTECT AGAINST SYSTEM FAILURES, INCLUDING BUT NOT LIMITED TO BACK-UP OR SHUT DOWN MECHANISMS.  
BECAUSE EACH END-USER SYSTEM IS CUSTOMIZED AND DIFFERS FROM NATIONAL INSTRUMENTS' TESTING  
PLATFORMS AND BECAUSE A USER OR APPLICATION DESIGNER MAY USE NATIONAL INSTRUMENTS PRODUCTS IN  
COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT EVALUATED OR CONTEMPLATED BY NATIONAL  
INSTRUMENTS, THE USER OR APPLICATION DESIGNER IS ULTIMATELY RESPONSIBLE FOR VERIFYING AND VALIDATING  
THE SUITABILITY OF NATIONAL INSTRUMENTS PRODUCTS WHENEVER NATIONAL INSTRUMENTS PRODUCTS ARE  
INCORPORATED IN A SYSTEM OR APPLICATION, INCLUDING, WITHOUT LIMITATION, THE APPROPRIATE DESIGN,  
PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
About This Manual  
Chapter 1  
niocr.ocx..........................................................................................................1-4  
NIOCR control..................................................................................1-4  
CWMachineVision control ...............................................................1-4  
Chapter 2  
Continuous Acquisition.....................................................................2-5  
Reading a File..................................................................................................2-6  
Converting an Array to an Image....................................................................2-6  
Display an Image ...........................................................................................................2-6  
Attach Calibration Information......................................................................................2-7  
Analyze an Image ..........................................................................................................2-7  
© National Instruments Corporation  
v
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Filters .............................................................................................................. 2-9  
Convolution Filter............................................................................. 2-10  
Grayscale Morphology.................................................................................... 2-10  
Chapter 3  
Comparing Colors........................................................................................... 3-9  
Learning Color Information............................................................................ 3-9  
Using the Entire Image..................................................................... 3-10  
Chapter 4  
Create a Binary Image................................................................................................... 4-1  
Improve the Binary Image............................................................................................. 4-2  
Separating Touching Particles ........................................................................ 4-3  
Chapter 5  
Performing Machine Vision Tasks  
Locate Objects to Inspect .............................................................................................. 5-2  
Using Edge Detection to Build a Coordinate Transformation........................ 5-3  
Using Pattern Matching to Build a Coordinate Transformation..................... 5-5  
Choosing a Method to Build the Coordinate Transformation......................... 5-7  
IMAQ Vision for Visual Basic User Manual  
vi  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Reading Characters..........................................................................................5-29  
Reading Barcodes............................................................................................5-29  
Read 1D Barcodes.............................................................................5-29  
Read Data Matrix Barcode................................................................5-30  
Read PDF417 Barcode......................................................................5-31  
Display Results ..............................................................................................................5-31  
© National Instruments Corporation  
vii  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Chapter 6  
Calibrating Images  
Learning the Correction Table.......................................................... 6-8  
Setting the Scaling Mode.................................................................. 6-8  
Simple Calibration......................................................................................................... 6-9  
Save Calibration Information ........................................................................................ 6-10  
Technical Support and Professional Services  
Glossary  
Index  
IMAQ Vision for Visual Basic User Manual  
viii  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
About This Manual  
The IMAQ Vision for Visual Basic User Manual is intended for engineers  
and scientists who have knowledge of Microsoft Visual Basic and need to  
create machine vision and image processing applications using Visual  
Basic objects. The manual guides you through tasks beginning with setting  
up the imaging system to taking measurements.  
Conventions  
The following conventions appear in this manual:  
»
The » symbol leads you through nested menu items and dialog box options  
to a final action. The sequence File»Page Setup»Options directs you to  
pull down the File menu, select the Page Setup item, and select Options  
from the last dialog box.  
This icon denotes a tip, which alerts you to advisory information.  
This icon denotes a note, which alerts you to important information.  
bold  
Bold text denotes items that you must select or click in the software, such  
as menu items and dialog box options. Bold text also denotes parameter  
names.  
italic  
Italic text denotes variables, emphasis, a cross reference, or an introduction  
to a key concept. This font also denotes text that is a placeholder for a word  
or value that you must supply.  
monospace  
Text in this font denotes text or characters that you should enter from the  
keyboard, sections of code, programming examples, and syntax examples.  
This font is also used for the proper names of disk drives, paths, directories,  
programs, subprograms, subroutines, device names, functions, operations,  
variables, filenames, and extensions.  
© National Instruments Corporation  
ix  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
About This Manual  
Related Documentation  
This manual assumes that you are familiar with Visual Basic and can use  
ActiveX controls in Visual Basic. The following are good sources of  
information about Visual Basic and ActiveX controls:  
msdn.microsoft.com  
Documentation that accompanies Microsoft Visual Studio  
In addition to this manual, the following documentation resources are  
available to help you create your vision application.  
IMAQ Vision  
IMAQ Vision Concepts Manual—If you are new to machine vision  
and imaging, read this manual to understand the concepts behind  
IMAQ Vision.  
IMAQ Vision for Visual Basic Reference—If you need information  
about IMAQ Vision objects, methods, properties, or events while  
creating your application, refer to this help file. You can access this file  
by selecting Start»Programs»National Instruments»  
Documentation»Vision»IMAQ Vision for Visual Basic Reference.  
NI Vision Assistant  
NI Vision Assistant Tutorial—If you need to install NI Vision  
Assistant and learn the fundamental features of the software, follow  
the instructions in this tutorial.  
NI Vision Assistant Help—If you need descriptions or step-by-step  
guidance about how to use any of the functions or features of NI Vision  
Assistant, refer to this help file.  
NI Vision Builder for Automated Inspection  
NI Vision Builder for Automated Inspection Tutorial—If you have  
little experience with machine vision, and you need information about  
how to solve common inspection tasks with NI Vision Builder AI,  
follow the instructions in this tutorial.  
NI Vision Builder for Automated Inspection: Configuration  
Help—If you need descriptions or step-by-step guidance about how to  
use any of the NI Vision Builder AI functions to create an automated  
vision inspection system, refer to this help file.  
IMAQ Vision for Visual Basic User Manual  
x
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
About This Manual  
NI Vision Builder for Automated Inspection: Inspection Help—If you  
need information about how to run an automated vision inspection  
system using NI Vision Builder AI, refer to this help file.  
Other Documentation  
NI OCR Training Interface Help—If you need information about the  
OCR Training Interface, refer to this help file.  
National Instruments IMAQ device user manual—If you need  
installation instructions and device-specific information, refer to your  
device user manual.  
Getting Started With Your IMAQ System—If you need instructions for  
installing the NI-IMAQ software and your IMAQ hardware,  
connecting your camera, running Measurement & Automation  
Explorer (MAX) and the NI-IMAQ Diagnostics, selecting a camera  
file, and acquiring an image, refer to this getting started document.  
NI-IMAQ User Manual—If you need information about how to use  
NI-IMAQ and IMAQ image acquisition devices to capture images for  
processing, refer to this manual.  
NI-IMAQ VI or function reference guides—If you need information  
about the features, functions, and operation of the NI-IMAQ image  
acquisition VIs or functions, refer to these help files.  
IMAQ Vision Deployment Engine Note to Users—If you need  
information about how to deploy your custom IMAQ Vision  
applications on target computers, read this CD insert.  
Example programs—If you want examples of how to create specific  
applications in Visual Basic, go to Vision\Examples\MSVB. If you  
want examples of how to create specific applications in Microsoft  
Visual Basic .NET, go to Vision\Examples\MSVB.NET.  
Application Notes—If you want to know more about advanced  
IMAQ Vision concepts and applications, refer to the Application  
Notes located on the National Instruments Web site at ni.com/  
appnotes.nsf.  
NI Developer Zone (NIDZ)—If you want even more information  
about developing your vision application, visit the NI Developer Zone  
at ni.com/zone. The NI Developer Zone contains example  
programs, tutorials, technical presentations, the Instrument Driver  
Network, a measurement glossary, an online magazine, a product  
advisor, and a community area where you can share ideas, questions,  
and source code with vision developers around the world.  
© National Instruments Corporation  
xi  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
1
Introduction to IMAQ Vision  
This chapter describes the IMAQ Vision for Visual Basic software and  
associated software products, discusses the documentation and examples  
available, outlines the IMAQ Vision for Visual Basic architecture, and lists  
the steps for creating a machine vision application.  
Note For information about the system requirements and installation procedure for  
IMAQ Vision for Visual Basic, refer to the Vision Development Module Release Notes that  
came with the software.  
About IMAQ Vision  
IMAQ Vision for Visual Basic is a collection of ActiveX controls that you  
can use to develop machine vision and scientific imaging applications. The  
Vision Development Module also includes the same imaging functions for  
LabWindows/CVIand other C development environments, as well as  
VIs for LabVIEW. Vision Assistant, another Vision Development Module  
software product, enables you to prototype your application strategy  
quickly without having to do any programming. Additionally, NI offers  
Vision Builder for Automated Inspection: configurable machine vision  
software that you can use to prototype, benchmark, and deploy  
applications.  
Documentation and Examples  
This manual assumes that you are familiar with Visual Basic and can use  
ActiveX controls in Visual Basic. The following are good sources of  
information about Visual Basic and ActiveX controls:  
msdn.microsoft.com  
Documentation that accompanies Microsoft Visual Studio  
© National Instruments Corporation  
1-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 1  
Introduction to IMAQ Vision  
In addition to this manual, several documentation resources are available  
to help you create a vision application:  
IMAQ Vision Concepts Manual—If you are new to machine vision  
and imaging, read this manual to understand the concepts behind  
IMAQ Vision.  
IMAQ Vision for Visual Basic Reference—If you need information  
about individual methods, properties, or objects, refer to this help file.  
Access this file from within Visual Basic or from the Start menu by  
selecting Programs»National Instruments»Vision»  
Documentation.  
NI-IMAQ User Manual—If you have a National Instruments image  
acquisition (IMAQ) device and need information about the functions  
that control the IMAQ device, refer to this portable document (PDF)  
file which was installed at the following location when you installed  
NI-IMAQ: Start»Programs»National Instruments»Vision»  
Documentation. You need Adobe Acrobat Reader to open this file.  
Example programs—If you want examples of how to create specific  
applications in Visual Basic, go to Vision\Examples\MSVB. If you  
want examples of how to create specific applications in Microsoft  
Visual Basic .NET, go to Vision\Examples\MSVB.NET.  
CWMachineVision source code—If you want to refer to the source  
code for the CWMachineVision control, go to Vision\Source\  
MSVB.  
Application Notes—If you want to know more about advanced  
IMAQ Vision concepts and applications, refer to the Application  
Notes located on the National Instruments Web site at ni.com/  
appnotes.nsf.  
NI Developer Zone (NIDZ)—For additional information about  
developing a vision application, visit the NI Developer Zone at  
ni.com/zone. The NI Developer Zone contains example programs,  
tutorials, technical presentations, the Instrument Driver Network, a  
measurement glossary, an online magazine, a product advisor, and a  
community area where you can share ideas, questions, and source code  
with vision developers around the world.  
IMAQ Vision for Visual Basic Organization  
IMAQ Vision for Visual Basic consists of five ActiveX controls contained  
in three files: cwimaq.ocx, cwmv.ocx, and niocr.ocx.  
IMAQ Vision for Visual Basic User Manual  
1-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
cwimaq.ocx  
cwimaq.ocxcontains the following three ActiveX controls and a  
collection of ActiveX objects: CWIMAQ, CWIMAQVision, and  
CWIMAQViewer. Refer to the ActiveX Objects section for information  
about the ActiveX objects.  
CWIMAQ Control  
Use this control to configure and perform an acquisition from the IMAQ  
device. The CWIMAQ control has property pages that allow you to modify  
various parameters to configure the acquisition and gather information  
about the IMAQ device. Most of the functionality available from the  
property pages during design time is also available through the properties  
of the CWIMAQ control during run-time. The control has methods that  
allow you to perform and control acquisitions, as well.  
Note You must have the NI-IMAQ driver software installed on the target system to use the  
CWIMAQ control. For information about NI-IMAQ, refer to the NI-IMAQ User Manual  
that came with the IMAQ device.  
CWIMAQVision Control  
Use this control to analyze and process images and their related data. The  
CWIMAQVision control provides methods for reading and writing images  
to and from files, analyzing images, and performing a variety of image  
processing algorithms on images.  
CWIMAQViewer Control  
Use this control to display images and provide the interface through which  
the user will interact with the displayed image. This includes the ability to  
zoom and pan images and to draw regions of interest (ROIs) on an image.  
The CWIMAQViewer control has property pages that allow you to  
configure the viewer’s appearance and behavior during design time as well  
as properties that you can configure during run-time. The control has  
methods that allow you to attach images to and detach images from the  
viewer for display purposes.  
Note The CWIMAQViewer control is referred to as a viewer in the remainder of this  
document.  
© National Instruments Corporation  
1-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Chapter 1  
Introduction to IMAQ Vision  
niocr.ocx  
niocr.ocxprovides one ActiveX control and a collection of ActiveX  
objects you use in a machine vision application to perform optical character  
recognition (OCR).  
NIOCR control  
Use this control to perform OCR, which is the process by which the  
machine vision software reads text and/or characters in an image. OCR  
consists of the following two procedures:  
Training characters  
Reading characters  
Training characters is the process by which you teach the machine vision  
software the types of characters and/or patterns you want to read in the  
image during the reading procedure. You can use IMAQ Vision to train any  
number of characters, creating a character set, which is the set of characters  
that you later compare with objects during the reading procedure. You store  
the character set you create in a character set file. Training might be a  
one-time process, or it might be a process you repeat several times, creating  
several character sets to broaden the scope of characters you want to detect  
in an image.  
Reading characters is the process by which the machine vision application  
you create analyzes an image to determine if the objects match the  
characters you trained. The machine vision application reads characters in  
an image using the character set that you created when you trained  
characters.  
cwmv.ocx  
cwmv.ocxcontains one ActiveX control and a collection of ActiveX  
objects. Refer to the ActiveX Objects section for more information about  
ActiveX objects.  
Use this control to perform high-level machine vision tasks, such as  
measuring distances. This control is written entirely in Visual Basic using  
the methods on the CWIMAQVision and CWIMAQViewer controls. The  
source code for the CWMachineVision control is included in the product.  
For more information about CWMachineVision methods, refer to  
Chapter 5, Performing Machine Vision Tasks.  
IMAQ Vision for Visual Basic User Manual  
1-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Chapter 1  
Introduction to IMAQ Vision  
Tip Refer to the source code of the CWMachineVision control for an example of how to  
use the CWIMAQVision methods.  
ActiveX Objects  
Use the objects to group related input parameters and output parameters to  
certain methods, thus reducing the number of parameters that you actually  
need to pass to those methods.  
Note ActiveX objects in cwimaq.ocxhave a CWIMAQ prefix, objects in niocr.ocx  
have an NIOCR prefix, and objects in cwmv.ocxhave a CWMV prefix.  
You must create an ActiveX object before you can use it. You can use the  
Newkeyword in Visual Basic to create these objects. For example, use the  
following syntax to create and store an image in a variable named image:  
Dim image As New CWIMAQImage  
Tip If you intend to develop an application in Visual C++, National Instruments  
recommends that you use IMAQ Vision for LabWindows/CVI. However, if you decide  
to use IMAQ Vision for Visual Basic to develop applications for Visual C++, you can  
create objects using the respective Create methods on the CWIMAQVision control or  
CWMachineVision control. For example, to create a CWIMAQImage object, use the  
CWIMAQVision.CreateCWIMAQImagemethod.  
Figures 1-1 and 1-2 illustrate the steps for creating an application with  
IMAQ Vision. Figure 1-1 describes the general steps for designing a  
Vision application. The last step in Figure 1-1 is expanded upon in  
Figure 1-2. You can use a combination of the items in the last step to create  
a IMAQ Vision application. For more information about items in either  
diagram, refer to the corresponding chapter listed beside the item.  
Note Diagram items enclosed with dashed lines are optional steps.  
© National Instruments Corporation  
1-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 1  
Introduction to IMAQ Vision  
Set Up Your Imaging System  
Chapter 6:  
Calibrating Images  
Calibrate Your Imaging System  
Create an Image  
Acquire or Read an Image  
Chapter 2:  
Getting  
Measurement-Ready  
Images  
Display an Image  
Attach Calibration Information  
Analyze an Image  
Improve an Image  
Make Measurements or Identify Objects  
in an Image Using  
1
2
3
Grayscale or Color Measurements, and/or  
Particle Analysis, and/or  
Machine Vision  
Figure 1-1. General Steps for Designing a Vision Application  
IMAQ Vision for Visual Basic User Manual  
1-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 1  
Introduction to IMAQ Vision  
2
Define Regions of Interest  
Chapter 3:  
Making Grayscale and Color  
Measurements  
Measure  
Grayscale Statistics  
Measure  
Color Statistics  
3
4
Locate Objects to Inspect  
Set Search Areas  
Create a Binary Image  
Chapter 4:  
Performing  
Particle  
Improve a Binary Image  
Analysis  
Find Measurement Points  
Identify Parts Under Inspection  
Chapter 5:  
Performing  
Machine  
Vision  
Make Particle Measurements  
Classify  
Read  
Read  
Objects Characters Symbologies  
Tasks  
Convert Pixel Coordinates to  
Real-World Coordinates  
Make Measurements  
Display Results  
Figure 1-2. Inspection Steps for Building a Vision Application  
© National Instruments Corporation  
1-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
2
Getting Measurement-Ready  
Images  
This chapter describes how to set up an imaging system, acquire and  
display an image, analyze the image, and prepare the image for additional  
processing.  
Set Up Your Imaging System  
Before you acquire, analyze, and process images, you must set up an  
imaging system. The manner in which you set up the system depends on the  
imaging environment and the type of analysis and processing you need to  
do. Your imaging system should produce images with high enough quality  
so that you can extract the information you need from the images.  
Follow the guidelines below to set up an imaging system.  
1. Determine the type of equipment you need based on the space  
constraints and the size of the object you need to inspect. For more  
information, refer to Chapter 3, System Setup and Calibration, of the  
IMAQ Vision Concepts Manual.  
a. Make sure the camera sensor is large enough to satisfy the  
minimum resolution requirement.  
b. Make sure the lens has a depth of field high enough to keep all of  
the objects in focus regardless of their distance from the lens.  
Also, make sure the lens has a focal length that meets your needs.  
c. Make sure the lighting provides enough contrast between the  
object under inspection and the background for you to extract the  
information you need from the image.  
2. Position the camera so that it is parallel to the object under inspection.  
If the camera acquires images of the object from an angle, perspective  
errors occur. Even though you can compensate for these errors with  
software, NI recommends that you use a perpendicular inspection  
angle to obtain the fastest and most accurate results.  
3. Select an image acquisition device that meets your needs. National  
Instruments offers several image acquisition devices, such as analog  
© National Instruments Corporation  
2-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 2  
Getting Measurement-Ready Images  
color and monochrome devices as well as digital devices. Visit  
ni.com/imaqfor more information about IMAQ devices.  
4. Configure the driver software for the image acquisition device. If  
you have a National Instruments image acquisition device, configure  
the NI-IMAQ driver software through Measurement & Automation  
Explorer (MAX). Open MAX by double-clicking the Measurement &  
Automation Explorer icon on the desktop. For more information, refer  
to the NI-IMAQ User Manual and the Measurement & Automation  
Explorer Help for IMAQ.  
Calibrate Your Imaging System  
After you set up the imaging system, you may want to calibrate the system.  
Calibrate the imaging system to assign real-world coordinates to pixel  
coordinates and compensate for perspective and nonlinear errors inherent  
in the imaging system.  
Perspective errors occur when the camera axis is not perpendicular to the  
object under inspection. Nonlinear distortion may occur from aberrations  
in the camera lens. Perspective errors and lens aberrations cause images to  
appear distorted. This distortion displaces information in an image, but it  
does not necessarily destroy the information in the image.  
Use simple calibration if you want only to assign real-world coordinates to  
pixel coordinates. Use perspective and nonlinear distortion calibration if  
you need to compensate for perspective errors and nonlinear lens distortion.  
For detailed information about calibration, refer to Chapter 6, Calibrating  
Images.  
Create an Image  
The CWIMAQImage object encapsulates all the information required to  
represent an image.  
Note CWIMAQImage is referred to as an image in the remainder of this document.  
An image can be one of many types, depending on the data it stores.  
The following image types are valid:  
16-bit  
Single-precision floating point  
IMAQ Vision for Visual Basic User Manual  
2-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 2  
Getting Measurement-Ready Images  
Complex  
32-bit RGB  
32-bit HSL  
64-bit RGB  
When you create an image, it is an 8-bit image by default. You can set the  
Typeproperty on the image object to change the image type.  
When you create an image, no memory is allocated to store the image  
pixels. IMAQ Vision methods automatically allocate the appropriate  
amount of memory when the image size is modified. For example, methods  
that acquire or resample an image alter the image size, so they allocate the  
appropriate memory space for the image pixels.  
Most methods belonging to the IMAQ Vision library require an input of one  
or more image objects. The number of images a method takes depends on  
the image processing function and the type of image you want to use.  
IMAQ Vision methods that analyze the image but do not modify the image  
contents require the input of one source image. Methods that process the  
contents of the image require one or more source images and a destination  
image. Exceptions to the preceding statements are methods that take a mask  
image as input.  
The presence of a MaskImageparameter indicates that the processing or  
analysis is dependent on the contents of the mask image. The only pixels  
in the source image that are processed are those whose corresponding  
pixels in the mask image are non-zero. If a mask image pixel is 0, the  
corresponding source image pixel is not processed or analyzed. The mask  
image must be an 8-bit image.  
If you want to apply a processing or analysis method to the entire image,  
do not supply the optional mask image. Using the same image for both the  
source image and mask image also has the same effect as not using the  
mask image, except in this case the source image must be an 8-bit image.  
Most operations between two images require that the images have the same  
type and size. However, arithmetic operations work between two different  
types of images. For example, an arithmetic operation between an 8-bit  
image and 16-bit image results in a 16-bit image.  
© National Instruments Corporation  
2-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 2  
Getting Measurement-Ready Images  
Acquire or Read an Image  
After you create an image, you can acquire an image into the imaging  
system in one of the following three ways:  
Acquire an image with a camera through the image acquisition device.  
Load an image from a file stored on the computer.  
Convert the data stored in a 2D array to an image.  
Methods that acquire images, load images from file, or convert data  
from a 2D array automatically allocate the memory space required to  
accommodate the image data.  
Acquiring an Image  
Use the CWIMAQ control to acquire images with a National Instruments  
IMAQ device. You can use IMAQ Vision for Visual Basic to perform  
one-shot and continuous acquisitions. You can choose the acquisition type  
during design time by setting the value of the Acquisition Type combo box  
to One-Shot or Continuous. The Acquisition Type combo box is located  
on the Acquisition property page of the CWIMAQ control. You can set the  
value at run-time by setting the CWIMAQ.AcquisitionTypeproperty to  
cwimaqAcquisitionOneShotor cwimaqAcquisitionContinuous.  
One-Shot Acquisition  
Use a one-shot acquisition to start an acquisition, perform the acquisition,  
and stop the acquisition using a single method. The number of frames  
acquired is equal to the number of images in the images collection. Use the  
CWIMAQ.AcquireImagemethod to perform this operation synchronously.  
Use the CWIMAQ.Startmethod to perform this operation asynchronously.  
For information about synchronous and asynchronous acquisitions, refer to  
the NI-IMAQ User Manual.  
If you want to acquire a single field or frame into a buffer, set the image  
count to 1. This operation is also referred to as a snap. Use a snap for  
low-speed or single capture applications. The following code illustrates a  
synchronous snap:  
Private Sub Start_Click()  
CWIMAQ1.AcquisitionType = cwimaqAcquisitionOneShot  
CWIMAQ1.AcquireImage  
End Sub  
IMAQ Vision for Visual Basic User Manual  
2-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Chapter 2  
Getting Measurement-Ready Images  
If you want to acquire multiple frames, set the image count to the number  
of frames you want to acquire. This operation is called a sequence. Use a  
sequence for applications that process multiple images. The following code  
illustrates an asynchronous sequence, where numberOfImagesis the  
number of images that you want to process:  
Private Sub Start_Click()  
CWIMAQ1.AcquisitionType = cwimaqAcquisitionOneShot  
CWIMAQ1.Images.RemoveAll  
CWIMAQ1.Images.Add numberOfImages  
CWIMAQ1.Start  
End Sub  
Continuous Acquisition  
Use a continuous acquisition to start an acquisition and continuously  
acquire frames into the image buffers, and then explicitly stop the  
acquisition. Use the CWIMAQ.Startmethod to start the acquisition. Use  
the CWIMAQ.Stopmethod to stop the acquisition. If you use a single buffer  
for the acquisition, this operation is called a grab. The following code  
illustrates a grab:  
Private Sub Start_Click()  
CWIMAQ1.AcquisitionType=_  
cwimaqAcquisitionContinuous  
CWIMAQ1.Start  
End Sub  
Private Sub Stop_Click()  
CWIMAQ1.Stop  
End Sub  
A ring operation uses multiple buffers for the acquisition. Use a ring for  
high-speed applications that require processing on every image. The  
following code illustrates a ring, where numberOfImagesis the number of  
images that you want to process:  
Private Sub Start_Click()  
CWIMAQ1.AcquisitionType =_  
cwimaqAcquisitionContinuous  
CWIMAQ1.Images.RemoveAll  
CWIMAQ1.Images.Add numberOfImages  
CWIMAQ1.Start  
End Sub  
© National Instruments Corporation  
2-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 2  
Getting Measurement-Ready Images  
Private Sub Stop_Click()  
CWIMAQ1.Stop  
End Sub  
Reading a File  
Use the CWIMAQVision.ReadImagemethod to open and read data from  
a file stored on the computer into the image reference. You can read from  
image files stored in several standard formats, such as BMP, TIFF, JPEG,  
PNG, and AIPD. In all cases, the software automatically converts the pixels  
it reads into the type of image you pass in.  
Use the CWIMAQVision.ReadImageAndVisionInfomethod to open an  
image file containing additional information, such as calibration  
information, template information for pattern matching, or overlay  
information. For more information about pattern matching templates  
and overlays, refer to Chapter 5, Performing Machine Vision Tasks.  
You also can use the CWIMAQVision.GetFileInformationmethod  
to retrieve image properties—image size, pixel depth, recommended image  
type, and calibration units—without actually reading all the image data.  
Converting an Array to an Image  
Use the CWIMAQImage.ArrayToImagemethod to convert an array to an  
image. You also can use the CWIMAQImage.ImageToArraymethod to  
convert an image to an array.  
Display an Image  
Display an image using the CWIMAQViewer control. Use  
CWIMAQViewer.Attachto attach the image you want the viewer  
to display. When you attach an image to a viewer, the image automatically  
updates the viewer whenever an operation modifies the contents of the  
image. You can access the image attached to the viewer using the  
CWIMAQViewer.Imageproperty. Before you attach an image to the  
viewer, the viewer already has an image attached by default. Therefore, the  
viewer has an image attached to it at all times. You can use the attached  
image as either a source image, destination image, or both using the  
CWIMAQViewer.Imageproperty.  
You can use the CWIMAQViewer.Paletteproperty to access the  
CWIMAQPalette object associated with the viewer. Use the  
CWIMAQPalette object to programmatically apply a color palette to  
IMAQ Vision for Visual Basic User Manual  
2-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 2  
Getting Measurement-Ready Images  
the viewer. You can set the CWIMAQPalette.Typeproperty to apply  
predefined color palettes. For example, if you need to display a binary  
image—an image that contains particle regions with pixel values of 1  
and a background region with pixel values of 0—set the Typeproperty to  
cwimaqPaletteBinary. For more information about color palettes, refer  
to Chapter 2, Display, of the IMAQ Vision Concepts Manual.  
You also can set a default palette during design time using the Menu  
property page. Users can change the color palette during run time by using  
the right-click menu on the viewer.  
Attach Calibration Information  
If you want to attach the calibration information of the current setup  
CWIMAQVision.SetCalibrationInformation. This method takes  
in a source image that contains the calibration information and a  
destination image that you want to calibrate. The output image is the  
inspection image with the calibration information attached to it. For  
detailed information about calibration, refer to Chapter 6, Calibrating  
Images.  
Note Because calibration information is part of the image, it is propagated throughout  
the processing and analysis of the image. Methods that modify the image size,  
such as geometrical transforms, void the calibration information. Use  
CWIMAQVision.WriteImageAndVisionInfoto save the image and all of the  
attached calibration information to a file.  
Analyze an Image  
When you acquire and display an image, you may want to analyze the  
contents of the image for the following reasons:  
To determine if the image quality is high enough for the inspection  
task.  
To obtain the values of parameters that you want to use in processing  
methods during the inspection process.  
The histogram and line profile tools can help you analyze the quality of the  
images.  
© National Instruments Corporation  
2-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 2  
Getting Measurement-Ready Images  
Use CWIMAQVision.Histogram2to analyze the overall grayscale  
distribution in the image. Use the histogram of the image to analyze  
two important criteria that define the quality of an image—saturation and  
contrast. If the image does not have enough light, the majority of the pixels  
will have low intensity values, which appear as a concentration of peaks on  
the left side of the histogram. If the image has too much light, the majority  
of the pixels will have a high intensity values, which appear as  
a concentration of peaks on the right side of the histogram. If the image has  
an appropriate amount of contrast, the histogram will have distinct regions  
of pixel concentrations. Use the histogram information to decide if the  
image quality is high enough to separate objects of interest from the  
background.  
If the image quality meets your needs, use the histogram to determine the  
range of pixel values that correspond to objects in the image. You can use  
this range in processing methods, such as determining a threshold range  
during particle analysis.  
If the image quality does not meet your needs, try to improve the imaging  
conditions to get the appropriate image quality. You may need to  
re-evaluate and modify each component of the imaging setup: lighting  
equipment and setup, lens tuning, camera operation mode, and acquisition  
board parameters. If you reach the best possible conditions with the setup  
but the image quality still does not meet your needs, try to improve the  
image quality using the image processing techniques described in the  
Improve an Image section of this chapter.  
Use CWIMAQVision.LineProfile2to get the pixel distribution along a  
line in the image, or use CWIMAQVision.RegionsProfileto get the  
pixel distribution along a one-dimensional path in the image. By looking at  
the pixel distribution, you can determine if the image quality is high enough  
to provide you with sharp edges at object boundaries. Also, you can  
determine if the image is noisy, and identify the characteristics of the noise.  
If the image quality meets your needs, use the pixel distribution  
information to determine some parameters of the inspection methods you  
want to use. For example, use the information from the line profile to  
determine the strength of the edge at the boundary of an object. You can  
input this information into CWIMAQVision.FindEdges2to find the edges  
of objects along the line.  
IMAQ Vision for Visual Basic User Manual  
2-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 2  
Getting Measurement-Ready Images  
Improve an Image  
Using the information you gathered from analyzing the image, you may  
want to improve the quality of the image for inspection. You can improve  
the image with lookup tables, filters, grayscale morphology, and Fast  
Fourier transforms (FFT).  
Lookup Tables  
Apply lookup table (LUT) transformations to highlight image details in  
areas containing significant information at the expense of other areas.  
A LUT transformation converts input grayscale values in the source image  
into other grayscale values in the transformed image. IMAQ Vision  
provides four methods that directly or indirectly apply lookup tables to  
images:  
CWIMAQVision.MathLookup—Converts the pixel values of an  
image by replacing them with values from a predefined lookup table.  
IMAQ Vision has seven predefined lookup tables based on  
mathematical transformations. For more information about these  
lookup tables, refer to Chapter 5, Image Processing, in the IMAQ  
Vision Concepts Manual.  
CWIMAQVision.UserLookup—Converts the pixel values of an  
image by replacing them with values from a user-defined lookup table.  
CWIMAQVision.Equalize2—Distributes the grayscale values  
evenly within a given grayscale range. Use this method to increase the  
contrast in images containing few grayscale values.  
CWIMAQVision.Inverse—Inverts the pixel intensities of an image  
to compute the negative of the image. For example, use this method  
before applying an automatic threshold to the image if the background  
pixels are brighter than the object pixels.  
Filters  
Filter the image when you need to improve the sharpness of transitions in  
the image or increase the overall signal-to-noise ratio of the image. You can  
choose either a lowpass or highpass filter, depending on your needs.  
Lowpass filters remove insignificant details by smoothing the image,  
removing sharp details, and smoothing the edges between the objects  
and the background. You can use CWIMAQVision.LowPassor define  
your own lowpass filter with CWIMAQVision.Convoluteor  
CWIMAQVision.NthOrder.  
© National Instruments Corporation  
2-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 2  
Getting Measurement-Ready Images  
Highpass filters emphasize details, such as edges, object boundaries,  
or cracks. These details represent sharp transitions in intensity value.  
You can define your own highpass filter with CWIMAQVision.Convolute  
or CWIMAQVision.NthOrder, or you can use a predefined highpass  
filter with CWIMAQVision.EdgeFilteror  
CWIMAQVision.CannyEdgeFilter. CWIMAQVision.EdgeFilter  
allows you to find edges in an image using predefined edge detection  
kernels, such as the Sobel, Prewitt, and Roberts kernels.  
Convolution Filter  
CWIMAQVision.Convoluteallows you to use a predefined set of  
lowpass and highpass filters. Each filter is defined by a kernel of  
coefficients. Use the CWIMAQKernel object to define the filter. Use  
CWIMAQKernel.LoadKernelto load a predefined kernel into the  
object. If the predefined kernels do not meet your needs, use the  
CWIMAQKernel.SetSizemethod to set the size of the kernel and the  
CWIMAQKernel.Elementproperty to set the data in the kernel.  
Nth Order Filter  
CWIMAQVision.NthOrderallows you to define a lowpass or highpass  
filter depending on the value of N that you choose. One specific Nth order  
filter, the median filter, removes speckle noise, which appears as small  
black and white dots. For more information about Nth order filters, refer to  
Chapter 5, Image Processing, of the IMAQ Vision Concepts Manual.  
Grayscale Morphology  
Perform grayscale morphology when you want to filter grayscale  
features of an image. Grayscale morphology helps you remove or  
enhance isolated features, such as bright pixels on a dark background.  
Use these transformations on a grayscale image to enhance non-distinct  
features before thresholding the image in preparation for particle analysis.  
Grayscale morphological transformations, which include erosions and  
dilations, compare a pixel to those pixels that surround it. An erosion keeps  
the smallest pixel values. A dilation keeps the largest pixel values.  
For more information about grayscale morphology transformations, refer  
to Chapter 5, Image Processing, of the IMAQ Vision Concepts Manual.  
IMAQ Vision for Visual Basic User Manual  
2-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 2  
Getting Measurement-Ready Images  
Use CWIMAQVision.GrayMorphologyto perform one of the following  
seven transformations:  
Erosion—Reduces the brightness of pixels that are surrounded by  
neighbors with a lower intensity.  
Dilation—Increases the brightness of pixels surrounded by neighbors  
with a higher intensity. A dilation has the opposite effect of an erosion.  
Opening—Removes bright pixels isolated in dark regions and smooths  
boundaries.  
Closing—Removes dark pixels isolated in bright regions and smooths  
boundaries.  
Proper-opening—Removes bright pixels isolated in dark regions and  
smooths the inner contours of particles.  
Proper-closing—Removes dark pixels isolated in bright regions and  
smooths the inner contours of particles.  
Auto-median—Generates simpler particles that have fewer details.  
FFT  
Use the Fast Fourier Transform (FFT) to convert an image into its  
frequency domain. In an image, details and sharp edges are associated  
with mid to high spatial frequencies because they introduce significant  
gray-level variations over short distances. Gradually varying patterns are  
associated with low spatial frequencies.  
An image can have extraneous noise, such as periodic stripes, introduced  
during the digitization process. In the frequency domain, the periodic  
pattern is reduced to a limited set of high spatial frequencies. Also, the  
imaging setup may produce non-uniform lighting of the field of view,  
which produces an image with a light drift superimposed on the  
information you want to analyze. In the frequency domain, the light drift  
appears as a limited set of low frequencies around the average intensity of  
the image, which is the DC component.  
You can use algorithms working in the frequency domain to isolate and  
remove these unwanted frequencies from the image. Complete the  
following steps to obtain an image in which the unwanted pattern has  
disappeared but the overall features remain:  
1. Use CWIMAQVision.FFTto convert an image from the spatial domain  
to the frequency domain. This method computes the FFT of the image  
and results in a complex image representing the frequency information  
of the image.  
© National Instruments Corporation  
2-11  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 2  
Getting Measurement-Ready Images  
2. Improve the image in the frequency domain with a lowpass or highpass  
frequency filter. Specify which type of filter to use with  
CWIMAQVision.CxAttenuate or CWIMAQVision.CxTruncate.  
Lowpass filters smooth noise, details, textures, and sharp edges in an  
image. Highpass filters emphasize details, textures, and sharp edges in  
images, but they also emphasize noise.  
Lowpass attenuation—The amount of attenuation is directly  
proportional to the frequency information. At low frequencies,  
there is little attenuation. As the frequencies increase, the  
attenuation increases. This operation preserves all of the zero  
frequency information. Zero frequency information corresponds  
to the DC component of the image or the average intensity of  
the image in the spatial domain.  
Highpass attenuation—The amount of attenuation is inversely  
proportional to the frequency information. At high frequencies,  
there is little attenuation. As the frequencies decrease, the  
attenuation increases. The zero frequency component is removed  
entirely.  
Lowpass truncation—Specify a frequency. The frequency  
components above the ideal cutoff frequency are removed, and  
the frequencies below it remain unaltered.  
Highpass truncation—Specify a frequency. The frequency  
components above the ideal cutoff frequency remain unaltered,  
and the frequencies below it are removed.  
3. To transform the image back to the spatial domain, use  
CWIMAQVision.InverseFFT.  
Complex Image Operations  
CWIMAQVision.ReplaceComplexPlane and  
CWIMAQVision.ExtractComplexPlane allow you to access, process,  
and update independently the magnitude, phase, real, and imaginary  
planes of a complex image. You can also convert a complex image to  
an array and back with CWIMAQImage.ImageToArray and  
CWIMAQImage.ArrayToImage.  
IMAQ Vision for Visual Basic User Manual  
2-12  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
3
Making Grayscale and Color  
Measurements  
This chapter describes how to take measurements from grayscale and color  
images. You can make inspection decisions based on image statistics, such  
as the mean intensity level in a region. Based on the image statistics, you  
can perform many machine vision inspection tasks on grayscale or color  
images, such as detecting the presence or absence of components, detecting  
flaws in parts, and comparing a color component with a reference.  
Figure 3-1 illustrates the basic steps involved in making grayscale and  
color measurements.  
Define Regions of Interest  
Measure  
Measure  
Grayscale Statistics  
Color Statistics  
Figure 3-1. Steps to Taking Grayscale and Color Measurements  
Define Regions of Interest  
An ROI is an area of an image in which you want to focus the image  
analysis. You can define an ROI interactively, programmatically, or with  
an image mask.  
Defining Regions Interactively  
You can interactively define an ROI in a viewer that displays an image. Use  
the tools from the right-click menu to interactively define and manipulate  
the ROIs. Table 3-1 describes each of the tools and the manner in which  
you use them.  
© National Instruments Corporation  
3-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Chapter 3  
Making Grayscale and Color Measurements  
Table 3-1. Tools Palette Functions  
Tool Name  
None  
Function  
Disable the tools.  
Selection Tool  
Select an ROI in the image and adjust the position  
of its control points and contours.  
Action: Click the appropriate ROI or control  
points.  
Point  
Line  
Select a pixel in the image.  
Action: Click the appropriate position.  
Draw a line in the image.  
Action: Click the initial position and click again  
on the final position.  
Rectangle  
Draw a rectangle or square in the image.  
Action: Click one corner and drag to the opposite  
corner.  
Rotated Rectangle Draw a rotated rectangle in the image.  
Action: Click one corner and drag to the opposite  
corner to create the rectangle. Then, click on the  
lines inside the rectangle and drag to adjust the  
rotation angle.  
Oval  
Draw an oval or circle in the image.  
Action: Click the center position and drag to the  
appropriate size.  
Annulus  
Draw an annulus in the image.  
Action: Click the center position and drag to the  
appropriate size. Adjust the inner and outer radii,  
and adjust the start and end angle.  
Broken Line  
Draw a broken line in the image.  
Action: Click to place a new vertex and  
double-click to complete the ROI element.  
IMAQ Vision for Visual Basic User Manual  
3-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
Chapter 3  
Making Grayscale and Color Measurements  
Table 3-1. Tools Palette Functions (Continued)  
Tool Name  
Function  
Polygon  
Draw a polygon in the image.  
Action: Click to place a new vertex and  
double-click to complete the ROI element.  
Freeline  
Draw a freehand line in the image.  
Action: Click the initial position, drag to the  
appropriate shape and release the mouse button to  
complete the shape.  
Free Region  
Draw a freehand region in the image.  
Action: Click the initial position, drag to the  
appropriate shape and release the mouse button to  
complete the shape.  
Zoom  
Pan  
Zoom in or zoom out in an image.  
Action: Click the image to zoom in. Hold down  
<Shift> and click to zoom out.  
Pan around an image.  
Action: Click an initial position, drag to the  
appropriate position, and release the mouse button  
to complete the pan.  
Hold down <Shift> when drawing an ROI if you want to constrain the ROI  
to the horizontal, vertical, or diagonal axes, when possible. Use the  
selection tool to position an ROI by its control points or vertices. ROIs are  
context sensitive, meaning that the cursor actions differ depending on the  
ROI with which you interact. For example, if you move the cursor over the  
side of a rectangle, the cursor changes to indicate that you can click and  
drag the side to resize the rectangle. If you want to draw more than one ROI  
in a window, hold down <Ctrl> while drawing additional ROIs. You also  
can use CWIMAQViewer.MaxContoursto set the maximum number of  
contours the viewer can have in its ROI.  
In the status bar of the viewer, you can display tool information about the  
characteristics of ROIs you draw, as shown in Figure 3-2. Check the Show  
Tool Info check box on the Status Bar property page during design time,  
or set the CWIMAQViewer.ShowToolInfoproperty to Trueduring run  
time to display tool information. You also can show or hide the tool  
information from the right-click menu.  
© National Instruments Corporation  
3-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 3  
Making Grayscale and Color Measurements  
8
1
2
3
4
5
6
7
1
2
3
4
Anchoring Coordinates of a Region of Interest  
Size of the Image  
Zoom Factor  
Image Type Indicator (8-bit, 16-bit, Float,  
RGB32, RGBU64, HSL, Complex)  
5
6
7
8
Pixel Intensity  
Coordinates of the Mouse  
Size of an Active Region of Interest  
Length and Horizontal Angle of a Line Region  
Figure 3-2. Tools Information  
IMAQ Vision for Visual Basic User Manual  
3-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3  
Making Grayscale and Color Measurements  
During design time, use the Menu property page to select which tools  
appear in the right-click menu. You also can designate a default tool from  
this property page. During run time, set the CWIMAQViewer.MenuItems  
to select the tools to display, and set CWIMAQViewer.Toolto select the  
default tool.  
Defining Regions Programmatically  
You can define ROIs programmatically using the CWIMAQRegions  
collection. In IMAQ Vision, shapes are represented by shape objects.  
For example, CWIMAQPoint represents a point, and CWIMAQLine  
represents a line. Use the following methods listed in Table 3-2 to add  
various shapes to the regions.  
Table 3-2. Methods that Add Shapes to Regions  
Method  
Description  
adds a point to the ROI  
AddPoint  
AddLine  
adds a line to the ROI  
AddRectangle  
AddRotatedRectangle  
AddOval  
adds a rectangle to the ROI  
adds a rotated rectangle to the ROI  
adds an oval to the ROI  
AddAnnulus  
adds an annulus to the ROI  
adds a broken line to the ROI  
adds a polygon to the ROI  
adds a free line to the ROI  
adds a free region to the ROI  
adds a region object to the ROI  
AddBrokenLine  
AddPolygon  
AddFreeline  
AddFreeregion  
AddRegion  
Use the CWIMAQRegions.CopyTomethod to copy all the data from one  
CWIMAQRegions object to another.  
You can define the regions on a viewer and access the regions using the  
CWIMAQViewer.Regionsproperty.  
The individual CWIMAQRegion objects provide access to the shapes in the  
collection. Each region has one shape object associated with it. Use the  
CWIMAQRegion.Shapeproperty to determine what type of shape the  
© National Instruments Corporation  
3-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 3  
Making Grayscale and Color Measurements  
CWIMAQRegion contains. When you know the type of shape that the  
region contains, you can set the region into a shape variable and use that  
variable to manipulate the shape properties. For example, the following  
code resizes a rectangle selected on the viewer:  
Dim MyRectangle As CWIMAQRectangle  
Set MyRectangle = CWIMAQViewer1.Regions(1)  
MyRectangle.Width = 100  
MyRectangle.Height = 100  
You also can pass CWIMAQRegion objects to any IMAQ Vision method  
that takes a shape as a parameter. However, if the CWIMAQRegion does  
not contain the type of shape object that the method requires, a type  
mismatch error results.  
Defining Regions with Masks  
You can define regions to process with image masks. An image mask is  
an 8-bit image of the same size as or smaller than the image you want to  
process. Pixels in the mask image determine if the corresponding pixel  
in the source image needs to be processed. If a pixel in the image mask  
has a value other than 0, the corresponding pixel in the source image is  
pixel in the source image is left unchanged.  
You can use a mask to define particles in a grayscale image when you need  
to make intensity measurements on those particles. First, threshold the  
image to make a new binary image. For more information about binary  
images, refer to Chapter 4, Performing Particle Analysis. You can input the  
binary image or a labeled version of the binary image as a mask image to  
the intensity measurement method. If you want to make color comparisons,  
convert the binary image into a CWIMAQRegions collection using  
CWIMAQVision.MaskToRegions.  
Measure Grayscale Statistics  
You can measure grayscale statistics in images using light meters or  
quantitative analysis methods. You can obtain the center of energy for an  
image with the centroid method.  
Use CWMachineVision.LightMeterPointto measure the  
light intensity at a point in the image. Use  
CWMachineVision.LightMeterLineto get the pixel value statistics  
along a line in the image, such as mean intensity, standard deviation,  
IMAQ Vision for Visual Basic User Manual  
3-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 3  
Making Grayscale and Color Measurements  
minimum intensity, and maximum intensity. Use  
CWMachineVision.LightMeterRectangleto get the pixel  
value statistics within a rectangular region in an image.  
Use CWIMAQVision.Quantifyto obtain the following statistics about the  
entire image or individual regions in the image: mean intensity, standard  
deviation, minimum intensity, maximum intensity, area, and the percentage  
of the image that you analyzed. You can specify regions in the image with  
a labeled image mask. A labeled image mask is a binary image that has  
been processed so that each region in the image mask has a unique intensity  
value. Use CWIMAQVision.Label2to label the image mask.  
Use CWIMAQVision.Centroid2to compute the energy center of the  
image, or of a region within an image.  
Measure Color Statistics  
Most image processing and analysis methods apply to 8-bit and 16-bit  
images. However, you can analyze and process individual components of a  
color image.  
Using CWIMAQVision.ExtractColorPlanes, you can break down  
a color image into various sets of primary components, such as  
RGB (Red, Green, and Blue), HSI (Hue, Saturation, and Intensity),  
HSL (Hue, Saturation, and Luminance), or HSV (Hue, Saturation, and  
Value). Each component becomes an 8-bit or 16-bit image that you can  
process like any other grayscale image. Use  
CWIMAQVision.ExtractSingleColorPlaneto extract a single color  
plane from an image. Use CWIMAQVision.ReplaceColorPlanesto  
reassemble a color image from a set of three 8-bit or 16-bit images, where  
each image becomes one of the three primary components. Figures 3-3  
and 3-4 illustrate how a color image breaks down into its three components.  
© National Instruments Corporation  
3-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 3  
Making Grayscale and Color Measurements  
Red  
Red  
Green  
Blue  
8
8
8
8
8
8
8
8
8
8
8
8
8
Green  
8
Blue  
8
Hue  
Hue  
Saturation  
Intensity  
8
or  
or Saturation  
8
Color  
Color  
Intensity  
8
Image  
Image  
32  
32  
8-bit Image Processing  
Hue  
Hue  
Saturation  
Luminance  
Hue  
8
8
8
8
8
8
or  
Saturation  
Luminance  
Hue  
or  
or  
Saturation  
Value  
Saturation or  
Value  
Figure 3-3. Primary Components of an 32-bit Color Image  
16  
16  
16  
16  
Red  
Red  
16-bit  
Image  
Processing  
Color  
Image  
Color  
Image  
64  
64  
Green  
Green  
Blue 16  
16 Blue  
Figure 3-4. Primary Components of a 64-bit Color Image  
A color pixel encoded as a Longvalue can be decomposed into its  
individual components using CWIMAQVision.IntegerToColorValue.  
You can convert a pixel value represented in any color model into  
its components in any other color model using  
CWIMAQVision.ColorValueConversion2.  
IMAQ Vision for Visual Basic User Manual  
3-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 3  
Making Grayscale and Color Measurements  
Comparing Colors  
You can use the color matching capability of IMAQ Vision to compare or  
evaluate the color content of an image or regions in an image.  
Complete the following steps to compare colors using color matching:  
1. Select an image containing the color information that you want to use  
as a reference. The color information can consist of a single color or  
multiple dissimilar colors, such as red and blue.  
2. Use the entire image or regions in the image to learn the color  
information using CWIMAQVision.LearnColor, which stores the  
results of the operation in a CWIMAQColorInformation object that  
you supply as a parameter. The color information object has a color  
spectrum that contains a compact description of the color information  
that you learned. Refer to Chapter 14, Color Inspection, of the  
IMAQ Vision Concepts Manual for more information. Use the  
CWIMAQColorInformation object to represent the learned color  
information for all subsequent matching operations.  
3. Define an entire image, a region, or multiple regions in an image as the  
inspection or comparison area.  
4. Use CWIMAQVision.MatchColorto compare the learned color  
information to the color information in the inspection regions. This  
method returns an array of scores that indicates how close the matches  
are to the learned color information.  
5. Use the color matching score as a measure of similarity between the  
reference color information and the color information in the image  
regions being compared.  
Learning Color Information  
When learning color information, choose the color information carefully:  
Specify an image or regions in an image that contain the color or color  
set that you want to learn.  
Specify the granularity required to represent the color information.  
Choose colors that you want to ignore during matching.  
© National Instruments Corporation  
3-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 3  
Making Grayscale and Color Measurements  
Specifying the Color Information to Learn  
Because color matching only uses color information to measure similarity,  
the image or regions in the image representing the object should contain  
only the significant colors that represent the object, as shown in  
Figure 3-5a. Figure 3-5b illustrates an unacceptable region containing  
background colors.  
a.  
b.  
Figure 3-5. Template Color Information  
The following sections specify when to learn the color information  
associated with an entire image, a region in an image, or multiple regions  
in an image.  
Using the Entire Image  
You can use an entire image to learn the color spectrum that represents the  
entire color distribution of the image. In a fabric identification application,  
for example, an entire image can specify the color information associated  
with a certain fabric type, as shown in Figure 3-6.  
Figure 3-6. Using the Entire Image to Learn Color Distribution  
IMAQ Vision for Visual Basic User Manual  
3-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Making Grayscale and Color Measurements  
Using a Region in the Image  
You can select a region in the image to provide the color information for  
comparison. A region is helpful for pulling out the useful color information  
in an image. Figure 3-7 shows an example of using a region that contains  
the color information that is important for the application.  
Figure 3-7. Using a Single Region to Learn Color Distribution  
Using Multiple Regions in the Image  
The interaction of light with the object surface creates the observed color of  
that object. The color of a surface depends on the directions of illumination  
and the direction from which the surface is observed. Two identical objects  
may have different appearances because of a difference in positioning or a  
change in the lighting conditions.  
Figure 3-8 shows how light reflects differently off of the 3D surfaces of the  
fuses, resulting in slightly different colors for identical fuses. To view the  
color differences, compare the 3-amp fuse in the upper row with the 3-amp  
fuse in the lower row.  
If you learn the color spectrum by drawing a region of interest around the  
3-amp fuse in the upper row, and then do a color matching for the 3-amp  
fuse in the upper row, you get a very high match score for it—close to 1000.  
The match score for the 3-amp fuse in the lower row is low—around 500.  
This problem could cause a mismatch for the color matching in a fuse box  
inspection process.  
The color learning functionality of IMAQ Vision uses a clustering process  
to find the representative colors from the color information specified by one  
or multiple regions in the image. To create a representative color spectrum  
for all 3-amp fuses in the learning phase, draw a Region around the 3-amp  
fuse in the upper row, hold down <Ctrl>, and draw another Region around  
the 3 amp fuse in the lower row. The new color spectrum represents 3-amp  
© National Instruments Corporation  
3-11  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 3  
Making Grayscale and Color Measurements  
fuses much better and results in high match scores—around 800—for both  
the fuses. You can use an unlimited number of samples to learn the  
representative color spectrum for a specified template.  
1
1
Regions used to learn color information  
Figure 3-8. Using Multiple Regions to Learn Color Distribution  
Choosing a Color Representation Sensitivity  
When you learn a color, you need to specify the granularity required to  
colors in the color space requires a lower granularity to describe the  
color than an image that contains colors that are close to one another  
in the color space. Use the ColorSensitivityparameter of  
CWIMAQVision.LearnColorto specify the granularity you want to  
use to represent the colors. For more information about color sensitivity,  
refer to the Color Sensitivity section of Chapter 5, Performing Machine  
Vision Tasks.  
IMAQ Vision for Visual Basic User Manual  
3-12  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 3  
Making Grayscale and Color Measurements  
Ignoring Learned Colors  
You can ignore certain color components in color matching by setting the  
corresponding component in the input color spectrum array to –1. To set a  
particular color component, follow these steps:  
1. Copy CWIMAQColorInformation.ColorSpectrum, or create your  
own array.  
2. Set the corresponding components of the array.  
3. Assign this array to CWIMAQColorInformation.ColorSpectrum  
on the CWIMAQColorInformation object you want to use as input  
during the match phase.  
For example, setting the last component in the color spectrum to –1 ignores  
the color white. Setting the second to last component in the color spectrum  
array to –1 ignores the color black. To ignore other color components in  
color matching, determine the index to the color spectrum by locating the  
corresponding bins in the color wheel, where each bin corresponds to a  
component in the color spectrum array. Ignoring certain colors such as the  
background color results in a more accurate color matching score. Ignoring  
the background color also provides more flexibility when defining the  
regions of interest in the color matching process. Ignoring certain colors,  
such as the white color created by glare on a metallic surface, also improves  
the accuracy of the color matching. Experiment learning the color  
information about different parts of the images to determine which colors  
to ignore. For more information about the color wheel and color bins, refer  
to Chapter 14, Color Inspection, in the IMAQ Vision Concepts Manual.  
© National Instruments Corporation  
3-13  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
4
Performing Particle Analysis  
This chapter describes how to perform particle analysis on the images. Use  
particle analysis to find statistical information about particles, such as the  
presence, size, number, and location of particle regions. With this  
information, you can perform many machine vision inspection tasks, such  
as detecting flaws on silicon wafers or detecting soldering defects on  
electronic boards. Examples of how particle analysis can help you perform  
web inspection tasks include locating structural defects on wood planks or  
detecting cracks on plastic sheets.  
Figure 4-1 illustrates the steps involved in performing particle analysis.  
Create a Binary Image  
Improve a Binary Image  
Make Particle Measurements  
in Pixels or Real-World Units  
Figure 4-1. Steps for Performing Particle Analysis  
Create a Binary Image  
Threshold the grayscale or color image to create a binary image. Creating  
a binary image separates the objects that you want to inspect from the  
background. The threshold operation sets the background pixels to 0 in the  
binary image, while setting the object pixels to a non-zero value. Object  
pixels have a value of 1 by default, but you can set the object pixels to any  
value or retain their original value.  
You can use different techniques to threshold the image. If all the  
objects of interest in the grayscale image fall within a continuous range  
of intensities and you can specify this threshold range manually, use  
CWIMAQVision.Thresholdto threshold the image.  
© National Instruments Corporation  
4-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Chapter 4  
Performing Particle Analysis  
If all the objects in the grayscale image are either brighter or darker than  
the background, you can use CWIMAQVision.AutoThresholdto  
automatically determine the optimal threshold range and threshold the  
image. Automatic thresholding techniques offer more flexibility than  
simple thresholds based on fixed ranges. Because automatic thresholding  
techniques determine the threshold level according to the image histogram,  
the operation is more independent of changes in the overall brightness and  
contrast of the image than a fixed threshold. These techniques are more  
resistant to changes in lighting, which makes them well suited for  
automated inspection tasks.  
If the grayscale image contains objects that have multiple discontinuous  
grayscale values, use CWIMAQVision.MultiThreshold2to specify  
multiple threshold ranges.  
If you need to threshold a color image, use  
CWIMAQVision.ColorThreshold. You must specify threshold  
ranges for each of the color planes—Red, Green, and Blue; or Hue,  
Saturation, and Luminance. The binary image resulting from a color  
threshold is an 8-bit binary image.  
Improve the Binary Image  
After you threshold the image, you may want to improve the resulting  
binary image with binary morphology. You can use primary binary  
morphology or advanced binary morphology to remove unwanted  
particles, separate connected particles, or improve the shape of particles.  
Primary morphology methods work on the image as a whole by processing  
pixels individually. Advanced morphology operations are built upon  
the primary morphological operators and work on particles as opposed  
to pixels.  
The advanced morphology methods that improve binary images require  
that you specify the type of connectivity to use. Connectivity specifies how  
IMAQ Vision determines if two adjacent pixels belong to the same particle.  
If you have a particle that contains narrow areas, use connectivity-8 to  
ensure that the software recognizes the connected pixels as one particle.  
If you have two particles that touch at one point, use connectivity-4 to  
ensure that the software recognizes the pixels as two separate particles.  
For more information about connectivity, refer to Chapter 9, Binary  
Morphology, of the IMAQ Vision Concepts Manual.  
Note Use the same type of connectivity throughout the application.  
IMAQ Vision for Visual Basic User Manual  
4-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 4  
Performing Particle Analysis  
Removing Unwanted Particles  
Use CWIMAQVision.RejectBorderto remove particles that touch the  
border of the image. Reject particles on the border of the image when you  
suspect that the information about those particles is incomplete.  
Use CWIMAQVision.RemoveParticleto remove large or small particles  
that do not interest you. You also can use the Erode, Open, and POpen  
methods in CWIMAQVision.Morphologyto remove small particles.  
Unlike CWIMAQVision.RemoveParticle, these three methods alter the  
size and shape of the remaining particles.  
Use the hit-miss method of CWIMAQVision.Morphologyto locate  
particular configurations of pixels, which you define with a structuring  
element. Depending on the configuration of the structuring element,  
the hit-miss method can locate single isolated pixels, cross-shape or  
longitudinal patterns, right angles along the edges of particles, and other  
user-specified shapes. For more information about structuring elements,  
refer to Chapter 9, Binary Morphology, of the IMAQ Vision Concepts  
Manual.  
If you know enough about the shape features of the particles you want to  
keep, use CWIMAQVision.ParticleFilter2to filter out particles that  
do not interest you. If you do not have enough information about the  
particles you want to keep at this point in the processing, use the particle  
measurement methods to obtain this information before applying a particle  
filter. Refer to the Make Particle Measurements section for more  
information about the measurement methods.  
Separating Touching Particles  
Use CWIMAQVision.Separationor apply an erosion or an open  
operation with CWIMAQVision.Morphologyto separate touching  
objects. CWIMAQVision.Separationis an advanced operation that  
separates particles without modifying their shapes. However, erosion and  
open operations alter the shape of all the particle.  
Note A separation is a time-intensive operation compared to an erosion or open operation.  
Consider using an erosion if speed is an issue with the application.  
© National Instruments Corporation  
4-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 4  
Performing Particle Analysis  
Improving Particle Shapes  
Use CWIMAQVision.FillHoleto fill holes in the particles. Use  
CWIMAQVision.Morphologyto perform a variety of operations on the  
particles. You can use the Open, Close, Proper Open, Proper Close, and  
auto-median operations to smooth the boundaries of the particles. Open and  
Proper Open Smooth the boundaries of the particle by removing small  
isthmuses, while close widens the isthmuses. Close and Proper Close fill  
small holes in the particle. Auto-median removes isthmuses and fills holes.  
For more information about these operations, refer to Chapter 9, Binary  
Morphology, in the IMAQ Vision Concepts Manual.  
Make Particle Measurements  
After you create a binary image and improve it, you can make particle  
measurements. With these measurements you can determine the location of  
particles and their shape features. Use the following methods to perform  
particle measurements:  
CWIMAQVision.ParticleReport—This method returns a  
CWIMAQParticleReport object, which contains, for each particle,  
nine of the most commonly used measurements, including the particle  
area, bounding rectangle, and center of mass. The bounding rectangle  
is returned as one measurement, but contains four measurement  
elements. The center of mass is returned as one measurement, but  
contains two elements.  
CWIMAQVision.ParticleMeasurement—This method takes the  
measurement you want to apply to all particles, and returns an array  
that contains the specified measurement for each particle.  
Table 4-1 lists all of the measurements that  
CWIMAQVision.ParticleMeasurementreturns.  
Table 4-1. Measurement Types  
Measurement  
Description  
Area of the particle.  
cwimaqMeasurementArea  
cwimaqMeasurementAreaByImageArea  
Percentage of the particle Area covering  
the Image Area.  
cwimaqMeasurementAreaByParticleAndHolesArea  
Percentage of the particle Area in  
relation to its Particle & Holes’ Area.  
IMAQ Vision for Visual Basic User Manual  
4-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementAverageHorizSegmentLength  
Average length of a horizontal segment  
in the particle.  
cwimaqMeasurementAverageVertSegmentLength  
Average length of a vertical segment in  
the particle.  
cwimaqMeasurementBoundingRectBottom  
cwimaqMeasurementBoundingRectDiagonal  
Y-coordinate of the lowest particle point.  
Distance between opposite corners of  
the bounding rectangle.  
cwimaqMeasurementBoundingRectHeight  
Distance between the Y-coordinate  
of highest particle point and the  
Y-coordinate of the lowest particle point.  
cwimaqMeasurementBoundingRectLeft  
cwimaqMeasurementBoundingRectRight  
X-coordinate of the leftmost particle  
point.  
X-coordinate of the rightmost particle  
point.  
cwimaqMeasurementBoundingRectTop  
cwimaqMeasurementBoundingRectWidth  
Y-coordinate of highest particle point.  
Distance between the X-coordinate  
of the leftmost particle point and the  
X-coordinate of the rightmost particle  
point.  
cwimaqMeasurementCenterMassX  
cwimaqMeasurementCenterMassY  
X-coordinate of the point representing  
the average position of the total particle  
mass assuming every point in the  
particle has a constant density.  
Y-coordinate of the point representing  
the average position of the total particle  
mass assuming every point in the  
particle has a constant density.  
cwimaqMeasurementCompactnessFactor  
cwimaqMeasurementConvexHullArea  
Area divided by the product of  
Bounding Rect Width and Bounding  
Rect Height.  
containing all points in the particle.  
© National Instruments Corporation  
4-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementConvexHullPerimeter  
Perimeter of the smallest convex  
polygon containing all points in the  
particle.  
cwimaqMeasurementElongationFactor  
Max Feret Diameter divided by  
Equivalent Rect Short Side (Feret).  
cwimaqMeasurementEquivalentEllipseMajorAxis  
Length of the major axis of the ellipse  
with the same perimeter and area as the  
particle.  
cwimaqMeasurementEquivalentEllipseMinorAxis  
Length of the minor axis of the ellipse  
with the same perimeter and area as the  
particle.  
cwimaqMeasurementEquivalentEllipseMinorAxisFeret Length of the minor axis of the ellipse  
with the same area as the particle, and  
Major Axis equal in length to the Max  
Feret Diameter.  
cwimaqMeasurementEquivalentRectDiagonal  
Distance between opposite corners of  
the rectangle with the same perimeter  
and area as the particle.  
cwimaqMeasurementEquivalentRectLongSide  
cwimaqMeasurementEquivalentRectShortSide  
cwimaqMeasurementEquivalentRectShortSideFeret  
Longest side of the rectangle with the  
same perimeter and area as the particle.  
Shortest side of the rectangle with the  
same perimeter and area as the particle.  
Shortest side of the rectangle with the  
same area as the particle, and longest  
side equal in length to the Max Feret  
Diameter.  
cwimaqMeasurementFirstPixelX  
X-coordinate of the highest, leftmost  
particle pixel.  
cwimaqMeasurementFirstPixelY  
Y-coordinate of the highest, leftmost  
particle pixel.  
Perimeter divided by the circumference  
of a circle with the same area.  
IMAQ Vision for Visual Basic User Manual  
4-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementHolesArea  
Sum of the areas of each hole in the  
particle.  
cwimaqMeasurementHolesPerimeter  
Sum of the perimeters of each hole in the  
particle.  
cwimaqMeasurementHuMoment1  
cwimaqMeasurementHuMoment2  
cwimaqMeasurementHuMoment3  
cwimaqMeasurementHuMoment4  
cwimaqMeasurementHuMoment5  
cwimaqMeasurementHuMoment6  
cwimaqMeasurementHuMoment7  
cwimaqMeasurementHydraulicRadius  
The first Hu moment.  
The second Hu moment.  
The third Hu moment.  
The fourth Hu moment.  
The fifth Hu moment.  
The sixth Hu moment.  
The seventh Hu moment.  
The particle area divided by the particle  
perimeter.  
cwimaqMeasurementImageArea  
Area of the image.  
cwimaqMeasurementMaxFeretDiameter  
Distance between the start and end of the  
line segment connecting the two  
perimeter points that are the furthest  
apart.  
cwimaqMeasurementMaxFeretDiameterEndX  
cwimaqMeasurementMaxFeretDiameterEndY  
cwimaqMeasurementMaxFeretDiameterOrientation  
cwimaqMeasurementMaxFeretDiameterStartX  
X-coordinate of the end of the line  
segment connecting the two perimeter  
points that are the furthest apart.  
Y-coordinate of the end of the line  
segment connecting the two perimeter  
points that are the furthest apart.  
The angle of the line segment  
connecting the two perimeter points that  
are the furthest apart.  
X-coordinate of the start of the line  
segment connecting the two perimeter  
points that are the furthest apart.  
© National Instruments Corporation  
4-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementMaxFeretDiameterStartY  
cwimaqMeasurementMaxHorizSegmentLengthLeft  
cwimaqMeasurementMaxHorizSegmentLengthRight  
cwimaqMeasurementMaxHorizSegmentLengthRow  
Y-coordinate of the start of the line  
segment connecting the two perimeter  
points that are the furthest apart.  
X-coordinate of the leftmost pixel in the  
longest row of contiguous pixels in the  
particle.  
X-coordinate of the rightmost pixel in  
the longest row of contiguous pixels in  
the particle.  
Y-coordinate of all of the pixels in the  
longest row of contiguous pixels in the  
particle.  
cwimaqMeasurementMomentOfInertiaXX  
cwimaqMeasurementMomentOfInertiaXXX  
cwimaqMeasurementMomentOfInertiaXXY  
cwimaqMeasurementMomentOfInertiaXY  
cwimaqMeasurementMomentOfInertiaXYY  
cwimaqMeasurementMomentOfInertiaYY  
cwimaqMeasurementMomentOfInertiaYYY  
cwimaqMeasurementNormMomentOfInertiaXX  
cwimaqMeasurementNormMomentOfInertiaXXX  
cwimaqMeasurementNormMomentOfInertiaXXY  
The moment of inertia in the X direction  
twice.  
The moment of inertia in the X direction  
three times.  
The moment of inertia in the X direction  
twice and the Y direction once.  
The moment of inertia in the X and Y  
directions.  
The moment of inertia in the X direction  
once and the Y direction twice.  
The moment of inertia in the Y direction  
twice.  
The moment of inertia in the Y direction  
three times.  
The normalized moment of inertia in the  
X direction twice.  
The normalized moment of inertia in the  
X direction three times.  
The normalized moment of inertia in the  
X direction twice and the Y direction  
once.  
IMAQ Vision for Visual Basic User Manual  
4-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementNormMomentOfInertiaXY  
The normalized moment of inertia in the  
X and Y directions.  
cwimaqMeasurementNormMomentOfInertiaXYY  
The normalized moment of inertia in the  
X direction once and the Y direction  
twice.  
cwimaqMeasurementNormMomentOfInertiaYY  
cwimaqMeasurementNormMomentOfInertiaYYY  
The normalized moment of inertia in the  
Y direction twice.  
The normalized moment of inertia in the  
Y direction three times.  
cwimaqMeasurementNumberOfHoles  
Number of holes in the particle.  
cwimaqMeasurementNumberOfHorizSegments  
Number of horizontal segments in the  
particle.  
cwimaqMeasurementNumberOfVertSegments  
cwimaqMeasurementOrientation  
Number of vertical segments in the  
particle.  
The angle of the line that passes through  
the particle Center of Mass about which  
the particle has the lowest moment of  
inertia.  
cwimaqMeasurementParticleAndHolesArea  
cwimaqMeasurementPerimeter  
Percentage of the particle Area in  
relation to its Particle & Holes’ Area.  
Sum of the perimeters of each hole in the  
particle.  
cwimaqMeasurementRatioOfEquivalentEllipseAxes  
cwimaqMeasurementRatioOfEquivalentRectSides  
cwimaqMeasurementSumX  
Equivalent Ellipse Major Axis divided  
by Equivalent Ellipse Minor Axis.  
Equivalent Rect Long Side divided by  
Equivalent Rect Short Side.  
The sum of all X-coordinates in the  
particle.  
cwimaqMeasurementSumXX  
The sum of all X-coordinates squared in  
the particle.  
cwimaqMeasurementSumXXX  
The sum of all X-coordinates cubed in  
the particle.  
© National Instruments Corporation  
4-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4  
Performing Particle Analysis  
Table 4-1. Measurement Types (Continued)  
Measurement  
Description  
cwimaqMeasurementSumXXY  
cwimaqMeasurementSumXY  
cwimaqMeasurementSumXYY  
cwimaqMeasurementSumY  
The sum of all X-coordinates squared  
times Y-coordinates in the particle.  
The sum of all X-coordinates times  
Y-coordinates in the particle.  
The sum of all X-coordinates times  
Y-coordinates squared in the particle.  
The sum of all Y-coordinates in the  
particle.  
cwimaqMeasurementSumYY  
cwimaqMeasurementSumYYY  
cwimaqMeasurementTypesFactor  
cwimaqMeasurementWaddelDiskDiameter  
The sum of all Y-coordinates squared in  
the particle.  
The sum of all Y-coordinates cubed in  
the particle.  
Factor relating area to moment of  
inertia.  
Diameter of a disk with the same area as  
the particle.  
IMAQ Vision for Visual Basic User Manual  
4-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
5
Performing Machine Vision  
Tasks  
This chapter describes how to perform many common machine vision  
inspection tasks. The most common inspection tasks are detecting the  
presence or absence of parts in an image and measuring the dimensions  
of parts to see if they meet specifications.  
Measurements are based on characteristic features of the object represented  
in the image. Image processing algorithms traditionally classify the type  
of information contained in an image as edges, surfaces and textures, or  
patterns. Different types of machine vision algorithms leverage and extract  
one or more types of information.  
Edge detectors and derivative techniques—such as rakes, concentric rakes,  
and spokes—use edges represented in the image. They locate, with high  
accuracy, the position of the edge of an object in the image. For example,  
you can a technique called clamping, which uses the edge location to  
measure the width of the part. You can combine multiple edge locations  
to compute intersection points, projections, circles, or ellipse fits.  
Pattern matching algorithms use edges and patterns. Pattern matching can  
locate with very high accuracy the position of fiducials or characteristic  
features of the part under inspection. Those locations can then be combined  
to compute lengths, angles, and other object measurements.  
The robustness of the measurement relies on the stability of the image  
acquisition conditions. Sensor resolution, lighting, optics, vibration  
control, part fixture, and general environment are key components of the  
imaging setup. All the elements of the image acquisition chain directly  
affect the accuracy of the measurements.  
Figure 5-1 illustrates the basic steps involved in performing machine  
vision.  
© National Instruments Corporation  
5-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
Locate Objects to Inspect  
Set Search Areas  
Find Measurement Points  
Identify Parts Under Inspection  
Classify  
Read  
Read  
Objects Characters Symbologies  
Convert Pixel Coordinates to  
Real-World Coordinates  
Make Measurements  
Display Results  
Figure 5-1. Steps to Performing Machine Vision  
Note Diagram items enclosed with dashed lines are optional steps.  
Locate Objects to Inspect  
In a typical machine vision application, you extract measurements from  
regions of interest rather than the entire image. To use this technique, the  
parts of the object you are interested in must always appear inside the  
regions of interest you define.  
If the object under inspection is always at the same location and orientation  
in the images you need to process, defining regions of interest is simple.  
Refer to the Set Search Areas section of this chapter for information about  
selecting a region of interest.  
Often, the object under inspection appears rotated or shifted in the image  
you need to process with respect to the reference image in which you  
located the object. When this occurs, the ROIs must shift and rotate with  
the parts of the object in which you are interested. For the ROIs to move  
with the object, you must define a reference coordinate system relative to  
the object in the reference image. During the measurement process, the  
coordinate system moves with the object when it appears shifted and  
rotated in the image you need to process. This coordinate system is referred  
IMAQ Vision for Visual Basic User Manual  
5-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
to as the measurement coordinate system. The measurement methods  
automatically move the ROIs to the correct position using the position of  
the measurement coordinate system with respect to the reference  
coordinate system. For information about coordinate systems, refer to  
Chapter 13, Dimensional Measurements, of the IMAQ Vision Concepts  
Manual.  
You can build a coordinate transformation using edge detection or  
pattern matching. The output of the edge detection and pattern  
matching methods that build a coordinate transformation is a  
CWMVCoordinateTransformation object, which contains a reference  
coordinate system and a measurement coordinate system. Some machine  
vision methods take this transformation and adjust the regions of inspection  
automatically. You also can use these outputs to move the regions of  
inspection relative to the object programmatically.  
Using Edge Detection to Build a Coordinate Transformation  
You can build a coordinate transformation using two edge detection  
techniques. UseCWMachineVision.FindCoordTransformUsingRect  
to define a reference coordinate system using one rectangular region. Use  
CWMachineVision.FindCoordTransformUsingTwoRectsto define a  
reference coordinate system using two independent rectangular regions.  
Follow the steps below to build a coordinate transformation using edge  
detection.  
Note To use this technique, the object cannot rotate more than 65° in the image.  
1. Specify one or two rectangular ROIs.  
a. If you use  
CWMachineVision.FindCoordTransformUsingRect,  
specify one rectangular ROI that includes part of two straight,  
nonparallel boundaries of the object, as shown in Figure 5-2.  
This rectangular region must be large enough to include these  
boundaries in all the images you want to inspect.  
© National Instruments Corporation  
5-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5  
Performing Machine Vision Tasks  
1
1
2
4
2
3
3
4
a.  
b.  
1
2
Search Area for the Coordinate System  
Object Edges  
3
4
Origin of the Coordinate System  
Measurement Area  
Figure 5-2. Coordinate Systems of a Reference Image and Inspection Image  
b. If you use  
CWMachineVision.FindCoordTransformUsingTwoRects,  
specify two rectangular ROIs, each containing one separate,  
straight boundary of the object, as shown in Figure 5-3. The  
boundaries cannot be parallel. The regions must be large enough  
to include the boundaries in all of the images you want to inspect.  
IMAQ Vision for Visual Basic User Manual  
5-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5  
Performing Machine Vision Tasks  
4
2
4
2
3
3
1
1
b.  
a.  
1
2
Primary Search Area  
Secondary Search Area  
3
4
Origin of the Coordinate System  
Measurement Area  
Figure 5-3. Locating Coordinate System Axes with Two Search Areas  
2. Choose the parameters you need to locate the edges on the object.  
3. Choose the coordinate system axis direction.  
4. Choose the results that you want to overlay onto the image.  
5. Choose the mode for the method. To build a coordinate transformation  
for the first time, set the FirstRunparameter to True. To update the  
coordinate transformation in subsequent images, set this parameter  
to False.  
Using Pattern Matching to Build a Coordinate Transformation  
You can build a coordinate transformation using pattern matching. Use  
CWMachineVision.FindCoordTransformUsingPatternto define a  
reference coordinate system based on the location of a reference feature.  
Use this technique when the object under inspection does not have straight,  
distinct edges. Follow the steps below to build a coordinate transformation  
using pattern matching.  
Note The object may rotate 360° in the image using this technique if you use  
rotation-invariant pattern matching.  
© National Instruments Corporation  
5-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
1. Define a template that represents the part of the object that you want  
to use as a reference feature. For more information about defining a  
template, refer to the Find Measurement Points section.  
2. Define a rectangular search area in which you expect to find the  
template.  
3. Set the MatchModeproperty of the  
CWMVFindCTUsingPatternOptions object to  
cwimaqRotationInvariantwhen you expect the template  
to appear rotated in the inspection images. Otherwise, set it to  
cwimaqShiftInvariant.  
4. Choose the results you want to overlay onto the image.  
5. Choose the mode for the method. To build a transformation for the  
first time, set the FirstRunparameter to True. To update the  
transformation in subsequent images, set this parameter to False.  
IMAQ Vision for Visual Basic User Manual  
5-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5  
Performing Machine Vision Tasks  
Choosing a Method to Build the Coordinate Transformation  
Figure 5-4 guides you through choosing the best method for building a  
coordinate transformation for the application.  
Start  
Object positioning  
No  
accuracy better  
than 65 degrees.  
Yes  
The object under  
No  
inspection has a straight,  
distinct edge (main axis).  
Yes  
The object contains a  
second distinct edge not parallel  
No  
to the main axis in the same  
search area.  
The object contains  
No  
a second distinct edge not  
parallel to the main axis in a  
separate search area.  
Yes  
Build a  
coordinate transformation  
based on edge detection  
using a single search area.  
Object positioning  
accuracy better  
than 5 degrees.  
No  
Yes  
Build a coordinate  
transformation based on  
edge detection using two  
distinct search areas.  
Yes  
Build a coordinate  
transformation based on  
pattern matching  
Build a coordinate  
transformation based on  
pattern matching  
rotation invariant strategy.  
shift invariant strategy.  
End  
Figure 5-4. Building a Coordinate Transformation  
© National Instruments Corporation  
5-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Set Search Areas  
Select ROIs in the images to limit the areas in which you perform the  
processing and inspection. You can define ROIs interactively or  
programmatically.  
Defining Regions Interactively  
Follow these steps to interactively define an ROI:  
1. Call  
CWMachineVision.SetupViewerFor<shapename>Selection.  
The following <shapename>values are available: Annulus, Line,  
Point, Rectangle, and RotatedRect. This method configures the  
viewer to display the appropriate tools for the shape you want to select.  
the area of the image you want to process.  
3. Use CWMachineVision.GetSelected<shapename>FromViewer  
to programmatically retrieve the shape from the viewer.  
You also can use the techniques described in Chapter 3, Making Grayscale  
and Color Measurements, to select an ROI.  
Table 5-1 indicates which ROI selection methods to use with a given  
CWMachineVision method.  
Table 5-1. ROI Selection Methods to Use with CWMachineVision Methods  
CWMachineVision ROI Selection Methods  
SetupViewerForRotatedRectSelection  
GetSelectedRotatedRectFromViewer  
CWMachineVision Method  
FindPattern  
MeasureMaximumDistance  
MeasureMinimumDistance  
FindStraightEdge  
LightMeterRectangle  
FindCircularEdge  
SetupViewerForAnnulusSelection  
GetSelectedAnnulusFromViewer  
FindConcentricEdge  
IMAQ Vision for Visual Basic User Manual  
5-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 5  
Performing Machine Vision Tasks  
Table 5-1. ROI Selection Methods to Use with CWMachineVision Methods (Continued)  
CWMachineVision ROI Selection Methods  
SetupViewerForPointSelection  
GetSelectedPointFromViewer  
CWMachineVision Method  
LightMeterPoint  
SetupViewerForLineSelection  
GetSelectedLineFromViewer  
LightMeterLine  
Defining Regions Programmatically  
When you have an automated application, you need to define regions of  
interest programmatically. You can programmatically define regions by  
providing basic parameters that describe the region you want to define. You  
can specify a rotated rectangle by creating a CWIMAQRotatedRectangle  
object and setting the coordinates of the center, width, height, and rotation  
and setting the coordinates of the center, inner radius, outer radius, start  
angle, and end angle. You can specify a point by setting its x-coordinates  
and y-coordinates. You can specify a line by setting the coordinates of the  
start and end points.  
Refer to Chapter 3, Making Grayscale and Color Measurements, for more  
information about defining regions of interest.  
Find Measurement Points  
After you set regions of inspection, locate points in the regions on which  
you can base measurements. You can locate measurement points using  
edge detection, pattern matching, color pattern matching, and color  
location.  
Finding Features Using Edge Detection  
Use the edge detection tools to identify and locate sharp discontinuities  
in an image. Discontinuities typically represent abrupt changes in pixel  
intensity values, which characterize the boundaries of objects.  
© National Instruments Corporation  
5-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 5  
Performing Machine Vision Tasks  
Finding Lines or Circles  
If you want to find points along the edge of an object and find a line  
describing the edge, use CWMachineVision.FindStraightEdge  
and CWMachineVision.FindConcentricEdge.  
CWMachineVision.FindStraightEdgefinds edges based  
on rectangular search areas, as shown in Figure 5-5.  
CWMachineVision.FindConcentricEdgefinds edges based  
on annular search areas.  
4
3
1
2
1
2
Search Region  
Search Lines  
3
4
Detected Edge Points  
Line Fit to Edge Points  
Figure 5-5. Finding a Straight Feature  
If you want to find points along a circular edge and find the circle  
that best fits the edge, as shown in Figure 5-6, use  
CWMachineVision.FindCircularEdge.  
IMAQ Vision for Visual Basic User Manual  
5-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
1
4
3
2
1
2
Annular Search Region  
Search Lines  
3
4
Detected Edge Points  
Circle Fit To Edge Points  
Figure 5-6. Finding a Circular Feature  
These methods locate the intersection points between a set of search  
lines in the search region and the edge of an object. Specify the separation  
between the lines that the methods use to detect edges. The methods  
determine the intersection points based on their contrast, width, and  
steepness. The software calculates a best-fit line with outliers rejected or a  
best-fit circle through the points it found. The methods return the  
coordinates of the edges found.  
Finding Edge Points Along One Search Contour  
Use CWIMAQVision.SimpleEdgeand CWIMAQVision.FindEdges2to  
find edge points along a contour. You can find the first edge, last edge, or  
all edges along the contour. Use CWIMAQVision.SimpleEdgewhen the  
image contains little noise and the object and background are clearly  
differentiated. Otherwise, use CWIMAQVision.FindEdges2.  
These methods require you to input the coordinates of the points along the  
search contour. Use CWIMAQVision.RegionsProfileto obtain the  
coordinates from a CWIMAQRegions object that describes the contour.  
If you have a straight line, use CWIMAQVision.GetPointsOnLineto  
obtain the points along the line instead of using regions.  
These methods determine the edge points based on their contrast and slope.  
You can specify if you want to find the edge points using subpixel accuracy.  
© National Instruments Corporation  
5-11  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Finding Edge Points Along Multiple Search Contours  
Use the CWIMAQVision.Rake, CWIMAQVision.Spoke, and  
CWIMAQVision.ConcentricRakemethods to find edge points  
along multiple search contours. These methods behave like  
CWIMAQVision.FindEdges2, but they find edges on multiple contours.  
These methods find only the first edge that meets the criteria along each  
contour. Pass in a CWIMAQRegions object to define the search region for  
these methods.  
CWIMAQVision.Rakeworks on a rectangular search region. The search  
lines are drawn parallel to the orientation of the rectangle. Control the  
number of search lines in the region by specifying the distance, in pixels,  
between each line. Specify the search direction as left to right or right to left  
for a horizontally oriented rectangle. Specify the search direction as top to  
bottom or bottom to top for a vertically oriented rectangle.  
CWIMAQVision.Spokeworks on an annular search region, scanning the  
search lines that are drawn from the center of the region to the outer  
boundary and that fall within the search area. Control the number of lines  
in the region by specifying the angle, in degrees, between each line. Specify  
the search direction as either going from the center outward or from the  
outer boundary to the center.  
CWIMAQVision.ConcentricRakeworks on an annular search region.  
The concentric rake is an adaptation of the rake to an annular region. Edge  
detection is performed along search lines that occur in the search region and  
that are concentric to the outer circular boundary. Control the number of  
concentric search lines that are used for the edge detection by specifying  
the radial distance between the concentric lines in pixels. Specify the  
direction of the search as either clockwise or counterclockwise.  
Finding Points Using Pattern Matching  
The pattern matching algorithms in IMAQ Vision measure the similarity  
between an idealized representation of a feature, called a template, and the  
feature that may be present in an image. A feature is defined as a specific  
pattern of pixels in an image. Pattern matching returns the location of the  
center of the template and the template orientation. Follow these  
generalized steps to find features in an image using pattern matching:  
1. Define a reference or fiducial pattern in the form of a template image.  
2. Use the reference pattern to train the pattern matching algorithm with  
CWIMAQVision.LearnPattern2.  
IMAQ Vision for Visual Basic User Manual  
5-12  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
3. Define an image or an area of an image as the search area. A small  
search area reduces the time to find the features.  
4. Set the tolerances and parameters to specify how the algorithm  
operates at run time using CWIMAQMatchPatternOptions.  
5. Test the search algorithm on test images using  
CWIMAQVision.MatchPattern2.  
6. Verify the results using a ranking method.  
Defining and Creating Effective Template Images  
The selection of a effective template image plays a critical part in obtaining  
good results. Because the template image represents the pattern that you  
want to find, make sure that all the important and unique characteristics of  
the pattern are well defined in the image.  
Several factors are critical in creating a template image. These critical  
factors include symmetry, feature detail, positional information, and  
background information.  
Symmetry  
A rotationally symmetric template is less sensitive to changes in rotation  
than one that is rotationally asymmetric. A rotationally symmetric template  
provides good positioning information but no orientation information.  
a.  
b.  
a
Rotationally Symmetric  
b
Rotationally Asymmetric  
Figure 5-7. Symmetry  
© National Instruments Corporation  
5-13  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Feature Detail  
A template with relatively coarse features is less sensitive to variations in  
size and rotation than a model with fine features. However, the model must  
contain enough detail to identify it.  
a.  
b.  
a
Good Feature Detail  
b
Ambiguous Feature Detail  
Figure 5-8. Feature Detail  
Positional Information  
A template with strong edges in both the x and y directions is easier to  
locate.  
a.  
b.  
a
b
Good Positional Information in x and y  
Insufficient Positional Information in y  
Figure 5-9. Positional Information  
IMAQ Vision for Visual Basic User Manual  
5-14  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5  
Performing Machine Vision Tasks  
Background Information  
Unique background information in a template improves search  
performance and accuracy.  
a.  
b.  
a
b
Pattern with Insufficient Background Information  
Pattern with Sufficient Background Information  
Figure 5-10. Background Information  
Training the Pattern Matching Algorithm  
After you create a good template image, the pattern matching  
algorithm has to learn the important features of the template. Use  
CWIMAQVision.LearnPattern2to learn the template. The learning  
process depends on the type of matching that you expect to perform. If you  
do not expect the instance of the template in the image to rotate or change  
its size, the pattern matching algorithm has to learn only those features  
from the template that are necessary for shift-invariant matching. However,  
if you want to match the template at any orientation, the learning mode  
must consider the possibility of arbitrary orientations. To specify  
which type of learning mode to use, pass the learn mode to  
the LearnPatternOptionsparameter of  
CWIMAQVision.LearnPattern2. You also can set the LearnMode  
property of a CWIMAQLearnPatternOptions object and pass this object  
for the LearnPatternOptionsparameter of  
CWIMAQVision.LearnPattern2.  
The learning process is usually time intensive because the algorithm  
attempts to find unique features of the template that allow for fast, accurate  
matching. The learning mode you choose also affects the speed of the  
learning process. Learning the template for shift-invariant matching is  
faster than learning for rotation-invariant matching. You also can save time  
by training the pattern matching algorithm offline, and then saving the  
template image with CWIMAQVision.WriteImageAndVisionInfo.  
© National Instruments Corporation  
5-15  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Defining a Search Area  
Two equally important factors define the success of a pattern matching  
algorithm: accuracy and speed. You can define a search area to reduce  
ambiguity in the search process. For example, if the image has multiple  
instances of a pattern and only one of them is required for the inspection  
task, the presence of additional instances of the pattern can produce  
incorrect results. To avoid this, reduce the search area so that only the  
appropriate pattern lies within the search area.  
The time required to locate a pattern in an image depends on both the  
template size and the search area. By reducing the search area or increasing  
the template size, you can reduce the required search time.  
In many inspection applications, you have general information about the  
location of the fiducial. Use this information to define a search area. For  
example, in a typical component placement application, each printed  
circuit board (PCB) being tested may not be placed in the same location  
with the same orientation. The location of the PCB in various images can  
move and rotate within a known range of values, as illustrated in  
Figure 5-11. Figure 5-11a shows the template used to locate the PCB in the  
image. Figure 5-11b shows an image containing a PCB with a fiducial you  
want to locate. Notice the search area around the fiducial. If you know,  
before the matching process begins, that the PCB can shift or rotate in the  
image within a fixed range, as shown in Figure 5-11c and Figure 5-11d,  
respectively, you can limit the search for the fiducial to a small region of  
the image.  
IMAQ Vision for Visual Basic User Manual  
5-16  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5  
Performing Machine Vision Tasks  
a.  
b.  
c.  
d.  
Figure 5-11. Selecting a Search Area for Grayscale Pattern Matching  
Setting Matching Parameters and Tolerances  
Every pattern matching algorithm makes assumptions about the images  
and pattern matching parameters used in machine vision applications.  
These assumptions work for a high percentage of the applications.  
However, there may be applications in which the assumptions used in the  
algorithm are not optimal. To efficiently select the best pattern matching  
parameters for the application, you must have a clear understanding of the  
application and the images you want to process. The following sections  
discuss parameters that influence the IMAQ Vision pattern matching  
algorithm.  
Match Mode  
You can set the match mode to control how the pattern matching algorithm  
handles the template at different orientations. If you expect the orientation  
of valid matches to vary less than 5° from the template, set  
CWIMAQMatchPatternOptions.MatchModeto  
cwimaqMatchShiftInvariant. Otherwise, set the mode element  
to cwimaqMatchRotationInvariant.  
Note Shift-invariant matching is faster than rotation-invariant matching.  
© National Instruments Corporation  
5-17  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Minimum Contrast  
Contrast is the difference between the smallest and largest pixel values in a  
region. You can set the minimum contrast to potentially increase the speed  
of the pattern matching algorithm. The pattern matching algorithm ignores  
all image regions where contrast values fall beneath a set minimum contrast  
value. If the search image has high contrast but contains some low contrast  
regions, you can set a high minimum contrast value. Using a high minimum  
contrast value excludes all areas in the image with low contrast,  
significantly reducing the region in which the pattern matching algorithm  
must search. If the search image has low contrast throughout, set a low  
minimum contrast parameter to ensure that the pattern matching  
algorithm looks for the template in all regions of the image. Use  
CWIMAQMatchPatternOptions.MinimumContrastto set the  
minimum contrast.  
Rotation Angle Ranges  
If you know that the pattern rotation is restricted to a certain range,  
such as between –15° to 15°, provide this restriction information to  
the pattern matching algorithm in the  
CWIMAQMatchPatternOptions.RotationAngleRangesproperty.  
This information improves your search time because the pattern  
matching algorithm looks for the pattern at fewer angles. Refer to  
Chapter 12, Pattern Matching, of the IMAQ Vision Concepts Manual  
for information about pattern matching.  
Testing the Search Algorithm on Test Images  
To determine if the selected template or reference pattern is appropriate for  
the machine vision application, test the template on a few test images.  
These test images should reflect the images generated by the machine  
vision application during true operating conditions. If the pattern matching  
algorithm locates the reference pattern in all cases, you have selected a  
good template. Otherwise, refine the current template, or select a better  
template until both training and testing are successful.  
IMAQ Vision for Visual Basic User Manual  
5-18  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
Using a Ranking Method to Verify Results  
The manner in which you interpret the pattern matching results depends  
on the application. For typical alignment applications, such as finding  
a fiducial on a wafer, the most important information is the  
position and bounding rectangle of the best match. Use  
CWIMAQPatternMatchReportItem.Positionand  
CWIMAQPatternMatchReportItem.BoundingPointsto get  
the position and location of a match.  
In inspection applications, such as optical character verification (OCV), the  
score of the best match is more useful. The score of a match returned by the  
pattern matching method is an indicator of the closeness between the  
original pattern and the match found in the image. A high score indicates a  
very close match, while a low score indicates a poor match. The score can  
be used as a gauge to determine if a printed character is acceptable. Use  
CWIMAQPatternMatchReportItem.Scoreto get a match score.  
Finding Points Using Color Pattern Matching  
Color pattern matching algorithms provide a quick way to locate objects  
when color is present. Use color pattern matching under the following  
circumstances:  
The object you want to locate has color information that is very  
different from the background, and you want to find a very precise  
location of the object in the image.  
The object to locate has grayscale properties that are very difficult to  
characterize or that are very similar to other objects in the search  
image. In such cases, grayscale pattern matching can give inaccurate  
results. If the object has color information that differentiates it from the  
other objects in the scene, color provides the machine vision software  
with the additional information to locate the object.  
Color pattern matching returns the location of the center of the template and  
the template orientation. Follow these general steps to find features in an  
image using color pattern matching:  
1. Define a reference or fiducial pattern in the form of a template image.  
2. Use the reference pattern to train the color pattern matching algorithm  
with CWIMAQVision.LearnColorPattern.  
3. Define an image or an area of an image as the search area. A small  
search area reduces the time to find the features.  
4. Set CWIMAQMatchColorPatternOptions.FeatureModeto  
cwimaqFeatureAll.  
© National Instruments Corporation  
5-19  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
5. Set the tolerances and parameters to specify how the algorithm  
operates at run time using CWIMAQMatchColorPatternOptions.  
6. Test the search algorithm on test images using  
CWIMAQVision.MatchColorPattern.  
7. Verify the results using a ranking method.  
Defining and Creating Effective Color Template  
Images  
The selection of a effective template image plays a critical part in obtaining  
accurate results with the color pattern matching algorithm. Because the  
template image represents the color and the pattern that you want to find,  
make sure that all the important and unique characteristics of the pattern are  
well defined in the image.  
Several factors are critical in creating a template image. These critical  
factors include color information, symmetry, feature detail, positional  
information, and background information.  
Color Information  
A template with colors that are unique to the pattern provides better results  
than a template that contains many colors, especially colors found in the  
background or other objects in the image.  
Symmetry  
A rotationally symmetric template in the luminance plane is less sensitive  
to changes in rotation than one that is rotationally asymmetric.  
Feature Detail  
A template with relatively coarse features is less sensitive to variations in  
size and rotation than a model with fine features. However, the model must  
contain enough detail to identify it.  
Positional Information  
A template with strong edges in both the x and y directions is easier to  
locate.  
IMAQ Vision for Visual Basic User Manual  
5-20  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 5  
Performing Machine Vision Tasks  
Background Information  
Unique background information in a template improves search  
This requirement could conflict with the “color information” requirement  
because background colors may not be appropriate during the color  
location phase. Avoid this problem by choosing a template with sufficient  
background information for grayscale pattern matching while specifying  
the exclusion of the background color during the color location phase.  
Refer to the Training the Pattern Matching Algorithm section of this  
chapter for more information about how to ignore colors.  
Training the Color Pattern Matching Algorithm  
After you have created a good template image, the color pattern  
matching algorithm learns the important features of the template. Use  
CWIMAQVision.LearnColorPatternto learn the template. The  
learning process depends on the type of matching that you expect to  
perform. By default, the color pattern matching algorithm learns only those  
features from the template that are necessary for shift-invariant matching.  
However, if you want to match the template at any orientation, the learning  
process must consider the possibility of arbitrary orientations. Use the  
CWIMAQLearnColorPatternOptions.LearnModeproperty to specify  
which type of learning mode to use.  
Exclude colors in the template that you are not interested in using during  
the search phase. Typically, you should ignore colors that either belong to  
the background of the object or are not unique to the template, reducing the  
potential for incorrect matches during the color location phase. You can  
learn the colors to ignore using CWIMAQVision.LearnColor. Use the  
CWIMAQLearnColorPatternOptions.IgnoreBlackAndWhiteor  
CWIMAQLearnColorPatternOptions.IgnoreColorSpectra  
properties to ignore background colors.  
The training or learning process is time-intensive because the  
algorithm attempts to find optimal features of the template for the  
particular matching process. However, you can train the pattern  
matching algorithm offline, and save the template image using  
CWIMAQVision.WriteImageAndVisionInfo.  
© National Instruments Corporation  
5-21  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
Defining a Search Area  
Two equally important factors define the success of a color pattern  
matching algorithm—accuracy and speed. You can define a search area to  
reduce ambiguity in the search process. For example, if the image has  
multiple instances of a pattern and only one instance is required for the  
inspection task, the presence of additional instances of the pattern can  
produce incorrect results. To avoid this, reduce the search area so that only  
the appropriate pattern lies within the search area. For example, in the fuse  
box inspection example use the location of the fuses to be inspected to  
define the search area. Because the inspected fuse box may not be in the  
exact location or have the same orientation in the image as the previous  
one, the search area you define should be large enough to accommodate  
these variations in the position of the box. Figure 5-12 shows how search  
areas can be selected for different objects.  
1
2
1
Search Area for 20 Amp Fuses  
2
Search Area for 25 Amp Fuses  
Figure 5-12. Selecting a Search Area for Color Pattern Matching  
IMAQ Vision for Visual Basic User Manual  
5-22  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5  
Performing Machine Vision Tasks  
The time required to locate a pattern in an image depends on both the  
template size and the search area. By reducing the search area or increasing  
the template size, you can reduce the required search time. Increasing the  
size of the template can improve search time, but doing so reduces match  
accuracy if the larger template includes an excess of background  
information.  
Setting Matching Parameters and Tolerances  
Every color pattern matching algorithm makes assumptions about the  
images and color pattern matching parameters used in machine vision  
applications. These assumptions work for a high percentage of the  
applications.  
In some applications, the assumptions used in the algorithm are not  
optimal. In such cases, you must modify the color pattern matching  
parameters. To efficiently select the best pattern matching parameters for  
the application, you must have a clear understanding of the application and  
the images you want to process.  
The following sections discuss parameters of the IMAQ Vision color  
pattern matching algorithm, and how they influence the algorithm.  
Color Sensitivity  
Use the color sensitivity to control the granularity of the color information  
in the template image. If the background and objects in the image contain  
colors that are very close to colors in the template image, use a higher color  
sensitivity setting. A higher sensitivity setting distinguishes colors with  
very close hue values. Three color sensitivity settings are available in  
IMAQ Vision: low, medium, and high. Use the low setting, which is the  
default, if the colors in the template are very different from the colors in the  
background or other objects that you are not interested in. Increase the  
color sensitivity settings as the color differences decrease. Use  
CWIMAQMatchColorPatternOptions.ColorSensitivityto set the  
color sensitivity. For information about color sensitivity, refer to  
Chapter 14, Color Inspection, of the IMAQ Vision Concepts Manual.  
Search Strategy  
Use the search strategy to optimize the speed of the color pattern matching  
algorithm. The search strategy controls the step size, sub-sampling factor,  
and the percentage of color information used from the template.  
© National Instruments Corporation  
5-23  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 5  
Performing Machine Vision Tasks  
Use one of the following four search strategies:  
Very aggressive—Uses the largest step size, the most sub-sampling  
and only the dominant color from the template to search for the  
template. Use this strategy when the color in the template is almost  
uniform, the template is well contrasted from the background and there  
is a good amount of separation between different occurrences of the  
template in the image. This strategy is the fastest way to find templates  
in an image.  
Aggressive—Uses a large step size, a large amount of subsampling,  
and all the color spectrum information from the template.  
Balanced—Uses values in between the aggressive and conservative  
strategies.  
Conservative—Uses a very small step size, the least amount of  
subsampling, and all the color information present in the template. The  
conservative strategy is the most reliable method to look for a template  
in any image at potentially reduced speed.  
Note Use the conservative strategy if you have multiple targets located very close to each  
other in the image.  
Decide on the best strategy by experimenting with the different options.  
Use CWIMAQMatchColorPatternOptions.SearchStrategyto select  
a search strategy.  
Color Score Weight  
When you search for a template using both color and shape information, the  
color and shape scores generated during the match process are combined  
to generate the final color pattern matching score. The color score  
weight determines the contribution of the color score to the final color  
pattern matching score. If the template color information is superior to  
its shape information, set the weight higher. For example, if you use a  
weight of 1000, the algorithm finds each match by using both color  
and shape information, and then ranks the matches based entirely on  
their color scores. If the weight is 0, the matches are ranked based  
entirely on only their shape scores. Use the  
CWIMAQMatchColorPatternOptions.ColorScoreWeight  
property to set the color score weight.  
IMAQ Vision for Visual Basic User Manual  
5-24  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5  
Performing Machine Vision Tasks  
Minimum Contrast  
Use the minimum contrast to increase the speed of the color pattern  
matching algorithm. The color pattern matching algorithm ignores  
all image regions where grayscale contrast values fall  
beneath a set minimum contrast value. Use  
CWIMAQMatchColorPatternMatchingOptions.MinimumContrast  
to set the minimum contrast. Refer to the Setting Matching Parameters and  
Tolerances section of this chapter for more information about minimum  
contrast.  
Rotation Angle Ranges  
If you know that the pattern rotation is restricted to a certain range, provide  
this restriction information to the pattern matching algorithm by using  
the CWIMAQMatchPatternOptions.RotationAngleRangesproperty.  
This information improves the search time because the color pattern  
matching algorithm looks for the pattern at fewer angles. Refer to  
Chapter 12, Pattern Matching, in the IMAQ Vision Concepts Manual  
for more information about pattern matching.  
Testing the Search Algorithm on Test Images  
To determine if the selected template or reference pattern is appropriate for  
the machine vision application, test the template on a few test images by  
using the CWIMAQVision.MatchColorPatternmethod. These test  
images should reflect the images generated by the machine vision  
application during true operating conditions. If the color pattern matching  
algorithm locates the reference pattern in all cases, you have selected a  
good template. Otherwise, refine the current template, or select a better  
template until both training and testing are successful.  
Finding Points Using Color Location  
Color location algorithms provide a quick way to locate regions in an image  
with specific colors.  
Use color location under the following circumstances:  
Requires the location and the number of regions in an image with their  
specific color information  
Relies on the cumulative color information in the region, instead of the  
color arrangement in the region  
Does not require the orientation of the region  
© National Instruments Corporation  
5-25  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 5  
Performing Machine Vision Tasks  
Does not always require the location with sub-pixel accuracy  
Does not require shape information for the region  
Complete the following steps to find features in an image using color  
location:  
1. Define a reference pattern in the form of a template image.  
2. Use the reference pattern to train the color location algorithm with  
CWIMAQVision.LearnColorPattern.  
3. Define an image or an area of an image as the search area. A small  
search area reduces the time to find the features.  
4. Set CWIMAQMatchColorPatternOptions.FeatureModeto  
cwimaqFeatureColorInformation.  
5. Set the tolerances and parameters to specify how the method operates  
at run time using CWIMAQMatchColorPatternOptions.  
6. Use CWIMAQVision.MatchColorPatternto test the color location  
algorithm on test images.  
7. Verify the results using a ranking method.  
Use CWIMAQVision.WriteImageAndVisionInfoto save the template  
image.  
Convert Pixel Coordinates to Real-World Coordinates  
The measurement points you located with edge detection and pattern  
matching are in pixel coordinates. If you need to make measurements using  
real-world units, use  
CWIMAQVision.ConvertPixelToRealWorldCoordinatesto convert  
the pixel coordinates into real-world units.  
Make Measurements  
You can make different types of measurements either directly from the  
image or from points that you detect in the image.  
Distance Measurements  
Use the following methods to make distance measurements for the  
inspection application.  
Clamp methods measure the separation between two edges in a rectangular  
search region. First, clamp methods detect points along the two edges using  
IMAQ Vision for Visual Basic User Manual  
5-26  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 5  
Performing Machine Vision Tasks  
the rake method, and then they compute the distance between the points  
detected on the edges along each search line of the rake and return the  
largest or smallest distance in either the horizontal or vertical direction. The  
MeasurementAxis parameter specifies the axis along which to measure.  
You also need to specify the parameters for edge detection and the  
separation between the search lines that you want to use within the search  
region to find the edges. These methods work directly on the image under  
inspection, and they output the coordinates of all the edge points that they  
find. The following list describes the available clamp methods:  
CWMachineVision.MeasureMaximumDistance—Measures the  
largest separation between two edges in a rectangular search region.  
smallest separation between two edges in a rectangular search region.  
Use CWIMAQVision.FindPointDistancesto compute the distances  
between consecutive pairs of points in an array of points. You can obtain  
these points from the image using any one of the feature detection methods  
described in the Find Measurement Points section of this chapter.  
Analytic Geometry Measurements  
Use the following CWIMAQVision methods to make geometrical  
measurements from the points you detect in the image:  
FitLine—Fits a line to a set of points and computes the equation of  
the line.  
FitCircle2—Fits a circle to a set of at least three points and  
computes its area, perimeter and radius.  
FitEllipse2—Fits an ellipse to a set of at least six points and  
computes its area, perimeter, and the lengths of its major and  
minor axis.  
FindIntersectionPoint—Finds the intersection point of two lines  
specified by their start and end points.  
FindAngleBetweenLines—Finds the smaller angle between two  
lines.  
FindPerpendicularLine—Finds the perpendicular line from a  
point to a line.  
FindDistanceFromPointToLine—Computes the perpendicular  
distance between the point and the line.  
FindBisectingLine—Finds the line that bisects the angle formed  
by two lines.  
© National Instruments Corporation  
5-27  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5  
Performing Machine Vision Tasks  
FindMidLine—Finds the line that is midway between a point and a  
line and is parallel to the line.  
FindPolygonArea—Calculates the area of a polygon specified by its  
vertex points.  
Instrument Reader Measurements  
You can make measurements based on the values obtained by meter, LCD,  
and barcode readers.  
Use CWIMAQMeterArc.CreateFromPointsor  
CWIMAQMeterArc.CreateFromLinesto calibrate a meter or  
gauge that you want to read. CWIMAQMeterArc.CreateFromLines  
calibrates the meter using the initial position and the full-scale position  
of the needle. CWIMAQMeterArc.CreateFromPointscalibrates the  
meter using three points on the meter: the base of the needle, the tip of  
the needle at its initial position, and the tip of the needle at its full-scale  
position. Use CWIMAQVision.ReadMeterto read the position of the  
needle using the CWIMAQMeterArc object.  
Use CWIMAQVision.FindLCDSegmentsto calculate the regions of  
interest around each digit in an LCD or LED. To find the area of each  
digit, all the segments of the indicator must be activated. Use  
CWIMAQVision.ReadLCDto read the digits of an LCD or LED.  
Identify Parts Under Inspection  
In addition to making measurements after you set regions of inspection,  
you also can identify parts using classification, OCR, and barcode reading.  
Classifying Samples  
Use classification to identify an unknown object by comparing a set of its  
significant features to a set of features that conceptually represent classes  
of known objects. Typical applications involving classification include the  
following:  
Sorting—Sorts objects of varied shapes. For example, sorting different  
mechanical parts on a conveyor belt into different bins.  
Inspection—Inspects objects by assigning each object an identification  
score and then rejecting objects that do not closely match members of  
the training set.  
IMAQ Vision for Visual Basic User Manual  
5-28  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
Before you classify objects, you must create a classifier file with samples  
of the objects using the NI Classification Training Interface. Go to Start»  
Programs»National Instruments»Classification Training to launch the  
NI Classification Training Interface.  
After you have trained samples of the objects you want to classify, use the  
following methods to classify the image under inspection:  
Use CWIMAQVision.ReadClassifierFileto read in the classifier  
file you created with the NI Classification Training Interface.  
Use CWIMAQClassifier.Classifyto classify the image under  
inspection.  
Reading Characters  
Use OCR to read text and/or characters in an image. Typical uses for OCR  
in an inspection application include identifying or classifying components.  
Before you read text and/or characters in an image, you must create a  
character set file with samples of the characters using the OCR Training  
Interface. Go to Start»Programs»National Instruments»Vision»OCR  
Training to launch the OCR Training Interface.  
After you have trained samples of the characters you want to read, use the  
following methods to read the characters:  
Use NIOCR.ReadOCRFileto read in a character set file that you  
created using the OCR Training Interface.  
Use NIOCR.ReadTextto read the characters inside the ROI of the  
image under inspection.  
Reading Barcodes  
Use barcode reading objects to read values encoded into 1D barcodes, Data  
Matrix symbols, and PDF417 symbols.  
Read 1D Barcodes  
To read a 1D barcode, locate the barcode in the image using one of the  
techniques described in the Instrument Reader Measurements section, and  
then pass the Regions parameter into CWIMAQVision.ReadBarcode.  
Use CWIMAQVision.ReadBarcodeto read values encoded in the 1D  
barcode. Specify the type of 1D barcode in the application using the  
BarcodeType parameter. IMAQ Vision supports the following 1D barcode  
© National Instruments Corporation  
5-29  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Chapter 5  
Performing Machine Vision Tasks  
types: Codabar, Code 39, Code 93, Code 128, EAN 8, EAN 13,  
Interleaved 2 of 5, MSI, and UPCA.  
Read Data Matrix Barcode  
Use CWIMAQVision.ReadDataMatrixBarcodeto read values encoded  
in a Data Matrix barcode. This method can automatically determine the  
location of the barcode and appropriate search options for the application.  
However, you can improve the performance of the application by  
specifying control values specific to the application.  
CWIMAQVision.ReadDataMatrixBarcodecan automatically locate  
one or multiple Data Matrix barcodes in an image. However, you can  
improve the inspection performance by locating the barcodes using one of  
the techniques described in the Instrument Reader Measurements section,  
and then passing the Regions parameter into  
CWIMAQVision.ReadDataMatrixBarcode.  
Tip If you need to read only one barcode per image, set  
CWIMAQDataMatrixOptions.SearchModeto  
cwimaqBarcode2DSearchSingleConservativeto increase the speed of the method.  
By default, CWIMAQVision.ReadDataMatrixBarcodedetermines if the  
barcode has black cells on a white background or white cells on a black  
background.  
Note Specify round cells only if the Data Matrix cells are round and have clearly defined  
edges. If the cells in the matrix touch one another, you must set CellShapeto  
cwimaqBarcode2DCellShapeSquare.  
By default, CWIMAQVision.ReadDataMatrixBarcodeassumes the  
barcode cells are square. If the barcodes you need to read have round cells,  
set the CellShapemember of the CWIMAQDataMatrixOptionsobject to  
cwimaqBarcode2DCellShapeRound.  
Set the BarcodeShapemember of the CWIMAQDataMatrixOptions  
object to cwimaqBarcode2DShapeRectangularor  
cwimaqBarcode2DShapeSquaredepending on the shape of the  
barcode you need to read.  
Note Setting the BarcodeShapemember of the CWIMAQDataMatrixOptionsobject to  
cwimaqBarcode2DShapeRectangularwhen the barcode you need to read is square  
reduces the reliability of the application.  
IMAQ Vision for Visual Basic User Manual  
5-30  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5  
Performing Machine Vision Tasks  
By default, CWIMAQVision.ReadDataMatrixBarcodeautomatically  
detects the type of barcode to read. You can improve the performance of the  
function by specifying the type of barcode in the application. IMAQ Vision  
supports Data Matrix types ECC 000 to ECC 140, and ECC 200.  
Read PDF417 Barcode  
Use CWIMAQVision.ReadPDF417Barcodeto read values encoded in a  
PDF417 barcode.  
By default, CWIMAQVision.ReadPDF417Barcodeautomatically locates  
one or multiple PDF417 barcodes in an image. However, you can improve  
the inspection performance by locating the barcodes using one of the  
techniques described in the Instrument Reader Measurements section,  
and then passing in Regions of the locations into  
CWIMAQVision.ReadPDF417Barcode.  
Tip If you need to read only one barcode per image, set the SearchMode parameter to  
cwimaqBarcode2DSearchSingleConservativeto increase the speed of the method.  
Display Results  
You can display the results obtained at various stages of the inspection  
process on the window that displays the inspection image by overlaying  
information about an image. The software attaches the information that you  
want to overlay to the image, but it does not modify the image.  
Access overlays using the CWIMAQImage.Overlaysproperty. The  
CWIMAQOverlays collection contains a single CWIMAQOverlay  
object that you can access using CWIMAQImage.Overlay(1).  
Note The CWIMAQImage.Overlayscollection does not support usual collection  
methods—such as Add, Remove, and RemoveAll—because they are reserved for  
future use.  
Use the following methods on the CWIMAQOverlay object to overlay  
search regions, inspection results, and other information, such as text and  
pictures. Overlays on a viewer image are automatically updated when you  
call one of these methods.  
DrawLine—Overlays a CWIMAQLine object on an image.  
DrawConnectedPoints—Overlays a CWIMAQPoints collection  
and draws a line between sequential points.  
© National Instruments Corporation  
5-31  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 5  
Performing Machine Vision Tasks  
DrawRectangle—Overlays a CWIMAQRectangle object on an  
image.  
DrawOval—Overlays a CWIMAQOval object on an image.  
DrawArc—Overlays a CWIMAQArc object on an image.  
DrawPicture—Overlays a picture object onto the image.  
DrawText—Overlays text on an image.  
DrawRegions—Overlays an ROI described by the CWIMAQRegions  
object on an image.  
Tip You can select the color of overlays by using one of these methods. If you do not  
supply a color to an overlay method, the CWIMAQOverlay.DefaultColorproperty  
is used.  
You can configure the following CWMachineVision methods to overlay  
different types of information about the inspection image:  
FindStraightEdge  
FindCircularEdge  
FindConcentricEdge  
MeasureMaximumDistance  
MeasureMinimumDistance  
FindPattern  
CountAndMeasureObjects  
FindCoordTransformUsingRect  
FindCoordTransformUsingTwoRects  
FindCoordTransformUsingPattern  
You can overlay the following information with all the above methods  
except CWMachineVision.FindPattern:  
The search area input into the method  
The search lines used for edge detection  
The edges detected along the search lines  
The result of the method  
Each of the above CWMachineVision methods has a settings object input  
that allows you to select the information you want to overlay. Set the  
boolean property that corresponds to the information you want to overlay  
IMAQ Vision for Visual Basic User Manual  
5-32  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5  
Performing Machine Vision Tasks  
to True. With CWMachineVision.FindPattern, you can overlay the  
search area and the result.  
Use CWIMAQOverlay.Clearto clear any previous overlay information  
from the image. Use CWIMAQVision.WriteImageAndVisionInfo  
to save an image with its overlay information to a file. You can  
read the information from the file into an image using the  
CWIMAQVision.ReadImageAndVisionInfo.  
Note As with calibration information, overlay information is removed from an image  
when the image size or orientation changes.  
© National Instruments Corporation  
5-33  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
6
Calibrating Images  
This chapter describes how to calibrate the imaging system, save  
calibration information, and attach calibration information to an image.  
After you set up the imaging system, you may want to calibrate the system.  
If the imaging setup is such that the camera axis is perpendicular or nearly  
perpendicular to the object under inspection and the lens has no distortion,  
use simple calibration. With simple calibration, you do not need to learn a  
template. Instead, you define the distance between pixels in the horizontal  
and vertical directions using real-world units.  
If the camera axis is not perpendicular to the object under inspection or the  
lens is distorted, use perspective and nonlinear distortion calibration to  
calibrate the system.  
Perspective and Nonlinear Distortion Calibration  
Perspective errors and lens aberrations cause images to appear distorted.  
This distortion misplaces information in an image, but it does not  
necessarily destroy the information in the image. Calibrate the imaging  
system if you need to compensate for perspective errors or nonlinear lens  
distortion.  
Follow these general steps to calibrate the imaging system:  
1. Define a calibration template.  
2. Define a reference coordinate system.  
3. Learn the calibration information.  
After you calibrate the imaging setup, you can attach the calibration  
information to an image. Refer to the Attach Calibration Information  
section of this chapter for more information. Depending on your needs, you  
can either apply calibration information in one of the following ways:  
Convert pixel coordinates to real-world coordinates without correcting  
the image  
Create a distortion-free image by correcting the image for perspective  
errors and lens aberrations  
© National Instruments Corporation  
6-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 6  
Calibrating Images  
Refer to Chapter 5, Performing Machine Vision Tasks, for more  
information about applying calibration information before making  
measurements.  
Defining a Calibration Template  
You can define a calibration template by supplying an image of a grid or  
providing a list of pixel coordinates and their corresponding real-world  
coordinates. This section discusses the grid method in detail.  
A calibration template is a user-defined grid of circular dots. As shown in  
Figure 6-1, the grid has constant spacings in the x and y directions. You can  
use any grid, but follow these guidelines for the best results:  
The displacement in the x and y directions must equal (dx = dy).  
The dots must cover the appropriate portion of the working area.  
The radius of the dots must be 6–10 pixels.  
The center-to-center distance between dots must range from  
18 to 32 pixels, as shown in Figure 6-1.  
The minimum distance between the edges of the dots must be 6 pixels,  
as shown in Figure 6-1.  
dx  
1
dy  
2
3
1
Center-to-Center Distance  
2
Center of Grid Dots  
3
Distance Between Dot Edges  
Figure 6-1. Defining a Calibration Grid  
Note You can use the calibration grid installed with IMAQ Vision at Start»Programs»  
National Instruments»Vision»Documentation»Calibration Grid. The dots have radii  
of 2 mm and center-to-center distances of 1 cm. Depending on the printer, these  
measurements may change by a fraction of a millimeter. You can purchase highly  
accurate calibration grids from optics suppliers, such as Edmund Industrial Optics.  
IMAQ Vision for Visual Basic User Manual  
6-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 6  
Calibrating Images  
Defining a Reference Coordinate System  
To express measurements in real-world units, you must define a  
coordinate system in the image of the grid. Use  
CWIMAQLearnCalibrationOptions.CalibrationAxisInfo  
to define a coordinate system by its origin, angle, and axis direction.  
The origin, expressed in pixels, defines the center of the coordinate system.  
The angle specifies the orientation of the coordinate system with respect to  
the angle of the topmost row of dots in the grid image. The calibration  
procedure automatically determines the direction of the horizontal axis in  
the real world. The vertical axis direction can either be indirect, as shown  
in Figure 6-2a, or direct, as shown in Figure 6-2b.  
X
Y
Y
X
a.  
b.  
Figure 6-2. Axis Direction in the Image Plane  
If you do not specify a coordinate system, the calibration process defines a  
default coordinate system. If you specify a grid for the calibration process,  
the software defines the following default coordinate system, as shown in  
Figure 6-3:  
1. The origin is placed at the center of the left, topmost dot in the  
calibration grid.  
2. The angle is set to 0°. This aligns the x-axis with the first row of dots  
in the grid, as shown in Figure 6-3b.  
3. The axis direction is set to indirect using  
CWIMAQCoordinateSystem.AxisOrientation=  
cwimaqAxisOrientationIndirect. This aligns the y-axis to the  
first column of the dots in the grid, as shown in Figure 6-3b.  
© National Instruments Corporation  
6-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 6  
Calibrating Images  
1
2
x
y
a.  
b.  
Origin of the Same Calibration Grid in an Image  
1
Origin of a Calibration Grid in the Real World  
2
Figure 6-3. A Calibration Grid and an Image of the Grid  
Note If you specify a list of points instead of a grid for the calibration process,  
the software defines a default coordinate system, as follows:  
1. The origin is placed at the point in the list with the lowest x-coordinate  
value and then the lowest y-coordinate value.  
2. The angle is set to 0°.  
3. The axis direction is set to indirect using  
CWIMAQCoordinateSystem.AxisOrientation=  
cwimaqAxisOrientationIndirect.  
If you define a coordinate system yourself, carefully consider the  
requirements of the application:  
Express the origin in pixels. Always choose an origin location that lies  
within the calibration grid so that you can convert the location to  
real-world units.  
Specify the angle as the angle between the x-axis of the new coordinate  
system (x') and the top row of dots (x), as shown in Figure 6-4. If the  
imaging system exhibits nonlinear distortion, you cannot visualize the  
angle as you can in Figure 6-4 because the dots do not appear in  
straight lines.  
IMAQ Vision for Visual Basic User Manual  
6-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 6  
Calibrating Images  
x
1
x'  
x
2
y'  
y
y
1
Default Origin in a Calibration Grid Image  
2
User-Defined Origin  
Learning Calibration Information  
After you define a calibration grid and reference axis, acquire an image of  
the grid using the current imaging setup. For information about acquiring  
images, refer to the Acquire or Read an Image section of Chapter 2, Getting  
Measurement-Ready Images. The grid does not need to occupy the entire  
image. You can choose a region within the image that contains the grid.  
After you acquire an image of the grid, learn the calibration information  
by inputting the image of the grid into  
CWIMAQVision.LearnCalibrationGrid.  
Note If you want to specify a list of points instead of a grid, use  
CWIMAQVision.LearnCalibrationPointsto learn the calibration information.  
Use the CWIMAQCalibrationPoints object to specify the pixel to real-world mapping.  
© National Instruments Corporation  
6-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 6  
Calibrating Images  
Specifying Scaling Factors  
Scaling factors are the real-world distances between the dots  
in the calibration grid in the x and y directions and the units in  
which the distances are measured. Use  
CWIMAQCalibrationGridOptions.GridDescriptorto  
specify the scaling factors.  
Choosing a Region of Interest  
Define a learning ROI during the learning process to define a region of the  
calibration grid you want to learn. The software ignores dot centers outside  
this region when it estimates the transformation. Creating a user-defined  
ROI is an effective way to increase correction speeds depending on the  
other calibration options selected. Pass a CWIMAQRegions collection  
representing the region you want to learn to the Regionsparameter of  
CWIMAQVision.LearnCalibrationGridor  
CWIMAQVision.LearnCalibrationPoints.  
Note The user-defined ROI represents the area in which you are interested. The learning  
ROI is separate from the calibration ROI that is generated by the calibration algorithm.  
Refer to Figure 6-6 for an illustration of calibration ROIs.  
Select a method in which to learn the calibration information: perspective  
projection or nonlinear. Figure 6-5 illustrates the types of errors the image  
can exhibit. Figure 6-5a shows an image of a calibration grid with no  
errors. Figure 6-5b shows an image of a calibration grid with perspective  
projection. Figure 6-5c shows an image of a calibration grid with nonlinear  
distortion.  
a.  
b.  
c.  
Figure 6-5. Types of Image Distortion  
IMAQ Vision for Visual Basic User Manual  
6-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Chapter 6  
Calibrating Images  
Choose the perspective projection algorithm when the system exhibits  
perspective errors only. A perspective projection calibration has an  
accurate transformation even in areas not covered by the calibration  
grid, as shown in Figure 6-6. Set  
CWIMAQLearnCalibrationOptions.CalibrationMethodto  
cwimaqPerspectiveCalibrationto choose the perspective calibration  
algorithm. Learning and applying perspective projection is less  
computationally intensive than the nonlinear method. However, perspective  
projection cannot handle nonlinear distortions.  
If the imaging setup exhibits nonlinear distortion, use the nonlinear  
method. The nonlinear method guarantees accurate results only in the  
area that the calibration grid covers, as shown in Figure 6-6. If the  
system exhibits both perspective and nonlinear distortion, use the  
nonlinear method to correct for both. Set  
CWIMAQLearnCalibrationOptions.CalibrationMethodto  
cwimaqNonLinearCalibrationto chose the nonlinear calibration  
algorithm.  
2
1
1
Calibration ROI Using the  
Perspective Algorithm  
2
Calibration ROI Using the  
Nonlinear Algorithm  
Figure 6-6. Calibration ROIs  
Using the Learning Score  
The learning process returns a score that reflects how well the software  
learned the input image. A high learning score indicates that you chose the  
the appropriate learning algorithm, that the grid image complies with the  
guideline, and that the vision system setup is adequate.  
© National Instruments Corporation  
6-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 6  
Calibrating Images  
Note A high score does not reflect the accuracy of the system.  
If the learning process returns a learning score below 600, try the following:  
1. Make sure the grid complies with the guidelines listed in the  
Defining a Calibration Template section.  
2. Check the lighting conditions. If you have too much or too little  
lighting, the software may estimate the center of the dots incorrectly.  
Also, adjust the threshold range to distinguish the dots from the  
background.  
3. Select another learning algorithm. When nonlinear lens distortion is  
present, using perspective projection sometimes results in a low  
learning score.  
Learning the Error Map  
An error map helps you gauge the quality of the complete system. The error  
map returns an estimated error range to expect when a pixel coordinate  
is transformed into a real-world coordinate. The transformation  
accuracy may be higher than the value the error range indicates. Set  
CWIMAQLearnCalibrationOptions.LearnErrorMapto Trueto learn  
the error map.  
Learning the Correction Table  
If the speed of image correction is a critical factor for the application, use  
a correction table. The correction table is a lookup table that contains  
the real-world location information of all the pixels in the image. The  
correction table is stored in memory. The extra memory requirements for  
this option are based on the size of the image. Use this option when you  
want to simultaneously correct multiple images in the vision application.  
Set CWIMAQLearnCalibrationOptions.LearnCorrectionTableto  
Trueto learn the correction table.  
Setting the Scaling Mode  
Use the scaling mode option to choose the appearance of the  
corrected image. Set  
CWIMAQLearnCalibrationOptions.CorrectionScalingModeto  
cwimaqScaleToFitor cwimaqScaleToPreserveArea. For more  
information about the scaling mode, refer to Chapter 3, System Setup and  
Calibration, in the IMAQ Vision Concepts Manual.  
IMAQ Vision for Visual Basic User Manual  
6-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 6  
Calibrating Images  
Calibration Invalidation  
Any image processing operation that changes the image size or orientation  
voids the calibration information in a calibrated image. Examples  
of methods that void calibration information include  
CWIMAQVision.Resample2, CWIMAQVision.Extract2,  
CWIMAQVision.Unwrap, and CWIMAQImage.ArrayToImage.  
Simple Calibration  
When the axis of the camera is perpendicular to the image plane and lens  
distortion is negligible, use simple calibration. In simple calibration, a pixel  
coordinate is transformed into a real-world coordinate through scaling in  
the horizontal and vertical directions.  
Use simple calibration to map pixel coordinates to real-world coordinates  
directly without a calibration grid. The software rotates and scales a pixel  
coordinate according to predefined coordinate reference and scaling  
factors. You can assign the calibration to an arbitrary image using  
CWIMAQVision.SetSimpleCalibration.  
To perform a simple calibration, set a coordinate system (angle, center,  
and axis direction) and scaling factors on the defined axis, as shown in  
Figure 6-7. Express the angle between the x-axis and the horizontal axis  
of the image in degrees. Express the center as the position, in pixels, where  
you want the coordinate system origin. Set the axis direction to direct or  
indirect. Simple calibration also offers a correction table option and a  
scaling mode option.  
Use CWIMAQSimpleCalibrationOptions.CalibrationAxisInfo  
to define the coordinate reference. Use  
CWIMAQSimpleCalibrationOptions.GridDescriptor  
to specify the scaling factors. Use  
CWIMAQSimpleCalibrationOptions.CorrectionScalingMode  
to set the scaling mode. Set  
CWIMAQSimpleCalibrationOptions.LearnCorrectionTable  
to Trueto learn the correction table.  
© National Instruments Corporation  
6-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 6  
Calibrating Images  
Y
X
dy  
1
dx  
1
Origin  
Figure 6-7. Defining a Simple Calibration  
Save Calibration Information  
After you learn the calibration information, you can save it so that you  
do not have to relearn the information for subsequent processing. Use  
CWIMAQVision.WriteImageAndVisionInfoto save the image of  
the grid and its associated calibration information to a file. To read the  
file containing the calibration information use  
CWIMAQVision.ReadImageAndVisionInfo. For more information  
about attaching the calibration information you read from another image,  
refer to the Attach Calibration Information section.  
Attach Calibration Information  
When you finish calibrating the setup, you can apply the calibration  
settings to images that you acquire. Use  
CWIMAQVision.SetCalibrationInformationto attach the  
calibration information of the current setup to each image you acquire.  
This method takes in a source image containing the calibration information  
and a destination image that you want to calibrate. The output image is the  
inspection image with the calibration information attached to it.  
Using the calibration information attached to the image, you can  
accurately convert pixel coordinates to real-world coordinates to  
make any of the analytic geometry measurements with  
IMAQ Vision for Visual Basic User Manual  
6-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 6  
Calibrating Images  
CWIMAQVision.ConvertPixelToRealWorldCoordinates. If  
the application requires shape measurements, correct the image by  
removing distortion with CWIMAQVision.CorrectCalibratedImage.  
Note Correcting images is a time-intensive operation.  
A calibrated image is different from a corrected image.  
Note Because calibration information is part of the image, it is propagated throughout  
the processing and analysis of the image. Methods that modify the image size,  
such as an image rotation method, void the calibration information. Use  
CWIMAQVision.WriteImageAndVisionInfoto save the image and all of the attached  
calibration information to a file. If you modify the image after using  
CWIMAQVision.WriteImageAndVisionInfo, you must relearn the calibration  
information and use CWIMAQVision.WriteImageAndVisionInfoagain.  
© National Instruments Corporation  
6-11  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
A
Technical Support and  
Professional Services  
Visit the following sections of the National Instruments Web site at  
ni.comfor technical support and professional services:  
Support—Online technical support resources at ni.com/support  
include the following:  
Self-Help Resources—For immediate answers and solutions,  
visit the award-winning National Instruments Web site for  
software drivers and updates, a searchable KnowledgeBase,  
product manuals, step-by-step troubleshooting wizards, thousands  
of example programs, tutorials, application notes, instrument  
drivers, and so on.  
Free Technical Support—All registered users receive free Basic  
Service, which includes access to hundreds of Application  
Engineers worldwide in the NI Developer Exchange at  
ni.com/exchange. National Instruments Application Engineers  
make sure every question receives an answer.  
Training and Certification—Visit ni.com/trainingfor  
self-paced training, eLearning virtual classrooms, interactive CDs,  
and Certification program information. You also can register for  
instructor-led, hands-on courses at locations around the world.  
System Integration—If you have time constraints, limited in-house  
technical resources, or other project challenges, National Instruments  
Alliance Partner members can help. To learn more, call your local  
NI office or visit ni.com/alliance.  
If you searched ni.comand could not find the answers you need, contact  
your local office or NI corporate headquarters. Phone numbers for our  
worldwide offices are listed at the front of this manual. You also can visit  
the Worldwide Offices section of ni.com/niglobalto access the branch  
office Web sites, which provide up-to-date contact information, support  
phone numbers, email addresses, and current events.  
© National Instruments Corporation  
A-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
Glossary  
Numbers  
1D  
2D  
3D  
One-dimensional.  
Two-dimensional.  
Three-dimensional.  
A
AIPD  
The National Instruments internal image file format used for saving  
complex images and calibration information associated with an image  
(extension APD).  
alignment  
The process by which a machine vision application determines the location,  
orientation, and scale of a part being inspected.  
alpha channel  
The channel used to code extra information, such as gamma correction,  
about a color image. The alpha channel is stored as the first byte in the  
four-byte representation of an RGB pixel.  
area  
(1) A rectangular portion of an acquisition window or frame that is  
controlled and defined by software.  
(2) The size of an object in pixels or user-defined units.  
The image operations multiply, divide, add, subtract, and modulo.  
An ordered, indexed set of data elements of the same type.  
arithmetic operators  
array  
auto-median function  
A function that uses dual combinations of opening and closing operations  
to smooth the boundaries of objects.  
B
b
Bit. One binary digit, either 0 or 1.  
B
Byte. Eight related bits of data, an eight-bit binary number. Also denotes  
the amount of memory required to store one byte of data.  
© National Instruments Corporation  
G-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Glossary  
barycenter  
The grayscale value representing the centroid of the range of an image’s  
grayscale values in the image histogram.  
binary image  
An image in which the objects usually have a pixel intensity of 1 (or 255)  
and the background has a pixel intensity of 0.  
binary morphology  
binary threshold  
Functions that perform morphological operations on a binary image.  
The separation of an image into objects of interest (assigned a pixel value  
of 1) and background (assigned pixel values of 0) based on the intensities  
of the image pixels.  
bit depth  
blurring  
The number of bits (n) used to encode the value of a pixel. For a given n,  
a pixel can take 2n different values. For example, if n equals 8, a pixel can  
take 256 different values ranging from 0 to 255. If n equals 16, a pixel can  
take 65,536 different values ranging from 0 to 65,535 or –32,768 to 32,767.  
Reduces the amount of detail in an image. Blurring commonly occurs  
because the camera is out of focus. You can blur an image intentionally by  
applying a lowpass frequency filter.  
BMP  
Bitmap. An image file format commonly used for 8-bit and color images.  
BMP images have the file extension BMP.  
border function  
brightness  
Removes objects (or particles) in a binary image that touch the image  
border.  
(1) A constant added to the red, green, and blue components of a color pixel  
during the color decoding process.  
(2) The perception by which white objects are distinguished from gray and  
light objects from dark objects.  
buffer  
Temporary storage for acquired data.  
IMAQ Vision for Visual Basic User Manual  
G-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Glossary  
C
caliper  
(1) A function in the NI Vision Assistant and in NI Vision Builder for  
Automated Inspection that calculates distances, angles, circular fits, and the  
center of mass based on positions given by edge detection, particle analysis,  
centroid, and search functions.  
(2) A measurement function that finds edge pairs along a specified path in  
the image. This function performs an edge extraction and then finds edge  
pairs based on specified criteria such as the distance between the leading  
and trailing edges, edge contrasts, and so forth.  
center of mass  
The point on an object where all the mass of the object could be  
concentrated without changing the first moment of the object about  
any axis.  
chroma  
The color information in a video signal.  
chromaticity  
The combination of hue and saturation. The relationship between  
chromaticity and brightness characterizes a color.  
closing  
A dilation followed by an erosion. A closing fills small holes in objects and  
smooths the boundaries of objects.  
clustering  
A technique where the image is sorted within a discrete number of classes  
corresponding to the number of phases perceived in an image. The gray  
values and a barycenter are determined for each class. This process is  
repeated until a value is obtained that represents the center of mass for each  
phase or class.  
CLUT  
Color lookup table. A table for converting the value of a pixel in an image  
into a red, green, and blue (RGB) intensity.  
color image  
color space  
An image containing color information, usually encoded in the RGB form.  
The mathematical representation for a color. For example, color can be  
described in terms of red, green, and blue; hue, saturation, and luminance;  
or hue, saturation, and intensity.  
complex image  
connectivity  
Stores information obtained from the FFT of an image. The complex  
numbers that compose the FFT plane are encoded in 64-bit floating-point  
values: 32 bits for the real part and 32 bits for the imaginary part.  
Defines which of the surrounding pixels of a given pixel constitute its  
neighborhood.  
© National Instruments Corporation  
G-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Glossary  
connectivity-4  
Only pixels adjacent in the horizontal and vertical directions are considered  
neighbors.  
connectivity-8  
contrast  
All adjacent pixels are considered neighbors.  
A constant multiplication factor applied to the luma and chroma  
components of a color pixel in the color decoding process.  
convex hull  
The smallest convex polygon that can encapsulate a particle.  
Computes the convex hull of objects in a binary image.  
See linear filter.  
convex hull function  
convolution  
convolution kernel  
2D matrices, or templates, used to represent the filter in the filtering  
process. The contents of these kernels are a discrete two-dimensional  
representation of the impulse response of the filter that they represent.  
D
Danielsson function  
Similar to the distance functions, but with more accurate results.  
determinism  
A characteristic of a system that describes how consistently it can respond  
to external events or perform operations within a given time limit.  
digital image  
dilation  
An image f (x, y) that has been converted into a discrete number of pixels.  
Both spatial coordinates and brightness are specified.  
Increases the size of an object along its boundary and removes tiny holes in  
the object.  
driver  
Software that controls a specific hardware device, such as an IMAQ or  
DAQ device.  
E
edge  
Defined by a sharp transition in the pixel intensities in an image or along an  
array of pixels.  
edge contrast  
edge detection  
The difference between the average pixel intensity before and the average  
Any of several techniques to identify the edges of objects in an image.  
IMAQ Vision for Visual Basic User Manual  
G-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
edge steepness  
The number of pixels that corresponds to the slope or transition area  
of an edge.  
energy center  
equalize function  
erosion  
The center of mass of a grayscale image. See center of mass.  
See histogram equalization.  
Reduces the size of an object along its boundary and eliminates isolated  
points in the image.  
exponential and  
gamma corrections  
Expand the high gray-level information in an image while suppressing low  
gray-level information.  
exponential function  
Decreases brightness and increases contrast in bright regions of an image,  
and decreases contrast in dark regions of an image.  
F
FFT  
Fast Fourier Transform. A method used to compute the Fourier transform  
of an image.  
fiducial  
A reference pattern on a part that helps a machine vision application find  
the part's location and orientation in an image.  
Fourier transform  
frequency filters  
Transforms an image from the spatial domain to the frequency domain.  
The counterparts of spatial filters in the frequency domain. For images,  
frequency information is in the form of spatial frequency.  
ft  
Feet.  
function  
A set of software instructions executed by a single line of code that may  
have input and/or output parameters and returns a value when executed.  
G
gamma  
The nonlinear change in the difference between the video signal’s  
brightness level and the voltage level needed to produce that brightness.  
gradient convolution  
filter  
See gradient filter.  
© National Instruments Corporation  
G-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Glossary  
gradient filter  
An edge detection algorithm that extracts the contours in gray-level values.  
Gradient filters include the Prewitt and Sobel filters.  
gray level  
The brightness of a pixel in an image.  
gray-level dilation  
Increases the brightness of pixels in an image that are surrounded by other  
pixels with a higher intensity.  
gray-level erosion  
Reduces the brightness of pixels in an image that are surrounded by other  
pixels with a lower intensity.  
grayscale image  
An image with monochrome information.  
grayscale morphology  
Functions that perform morphological operations on a gray-level image.  
H
h
Hour.  
highpass attenuation  
highpass filter  
The inverse of lowpass attenuation.  
Emphasizes the intensity variations in an image, detects edges or object  
boundaries, and enhances fine details in an image.  
highpass frequency  
filter  
Removes or attenuates low frequencies present in the frequency domain of  
the image. A highpass frequency filter suppresses information related to  
slow variations of light intensities in the spatial image.  
highpass truncation  
histogram  
The inverse of lowpass truncation.  
Indicates the quantitative distribution of the pixels of an image per  
gray-level value.  
histogram equalization  
histogram inversion  
histograph  
Transforms the gray-level values of the pixels of an image to occupy the  
entire range of the histogram, thus increasing the contrast of the image.  
The histogram range in an 8-bit image is 0 to 255.  
Finds the photometric negative of an image. The histogram of a reversed  
image is equal to the original histogram flipped horizontally around the  
center of the histogram.  
Histogram that can be wired directly into a graph.  
IMAQ Vision for Visual Basic User Manual  
G-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Glossary  
hit-miss function  
Locates objects in the image similar to the pattern defined in the structuring  
element.  
HSI  
A color encoding scheme in hue, saturation, and intensity.  
HSL  
A color encoding scheme using hue, saturation, and luminance information  
where each image in the pixel is encoded using 32 bits: 8 bits for hue, 8 bits  
for saturation, 8 bits for luminance, and 8 unused bits.  
HSV  
hue  
A color encoding scheme in hue, saturation, and value.  
Represents the dominant color of a pixel. The hue function is a continuous  
function that covers all the possible colors generated using the R, G, and  
B primaries. See also RGB.  
Hz  
Hertz. Frequency in units of 1/second.  
I
I/O  
Input/output. The transfer of data to/from a computer system involving  
communications channels, operator interface devices, and/or data  
acquisition and control interfaces.  
image  
A two-dimensional light intensity function f (x, y) where x and y denote  
spatial coordinates and the value f at any point (x, y) is proportional to the  
brightness at that point.  
image border  
Image Browser  
A user-defined region of pixels surrounding an image. Functions that  
process pixels based on the value of the pixel neighbors require image  
borders.  
An image that contains thumbnails of images to analyze or process in a  
vision application.  
image buffer  
A memory location used to store images.  
image definition  
The number of values a pixel can take on, which is the number of colors or  
shades that you can see in the image.  
image display  
environment  
A window or control that displays an image.  
© National Instruments Corporation  
G-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
image enhancement  
The process of improving the quality of an image that you acquire from  
a sensor in terms of signal-to-noise ratio, image contrast, edge definition,  
and so on.  
image file  
A file containing pixel data and additional information about the image.  
image format  
Defines how an image is stored in a file. Usually composed of a header  
followed by the pixel data.  
image mask  
A binary image that isolates parts of a source image for further processing.  
A pixel in the source image is processed if its corresponding mask pixel has  
a non-zero value. A source pixel whose corresponding mask pixel has a  
value of 0 is left unchanged.  
image palette  
The gradation of colors used to display an image on screen, usually defined  
by a CLUT.  
image processing  
Encompasses various processes and analysis functions that you can apply  
to an image.  
image source  
imaging  
The original input image.  
Any process of acquiring and displaying images and analyzing image data.  
Image Acquisition.  
IMAQ  
inner gradient  
inspection  
Finds the inner boundary of objects.  
The process by which parts are tested for simple defects such as missing  
parts or cracks on part surfaces.  
inspection function  
instrument driver  
intensity  
Analyzes groups of pixels within an image and returns information about  
the size, shape, position, and pixel connectivity. Typical applications  
include quality of parts, analyzing defects, locating objects, and sorting  
objects.  
A set of high-level software functions, such as NI-IMAQ, that control  
specific plug-in computer boards. Instrument drivers are available in  
several forms, ranging from a function callable from a programming  
language to a VI in LabVIEW.  
The sum of the Red, Green, and Blue primary colors divided by three,  
IMAQ Vision for Visual Basic User Manual  
G-8  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
intensity calibration  
Assigns user-defined quantities such as optical densities or concentrations  
to the gray-level values in an image.  
intensity profile  
intensity range  
The gray-level distribution of the pixels along an ROI in an image.  
Defines the range of gray-level values in an object of an image.  
intensity threshold  
Characterizes an object based on the range of gray-level values in the  
object. If the intensity range of the object falls within the user-specified  
range, it is considered an object. Otherwise it is considered part of the  
background.  
J
jitter  
The maximum amount of time that the execution of an algorithm varies  
from one execution to the next.  
JPEG  
Joint Photographic Experts Group. An image file format for storing 8-bit  
and color images with lossy compression. JPEG images have the file  
extension JPG.  
K
kernel  
A structure that represents a pixel and its relationship to its neighbors.  
The relationship is specified by weighted coefficients of each neighbor.  
L
labeling  
A morphology operation that identifies each object in a binary image and  
assigns a unique pixel value to all the pixels in an object. This process is  
useful for identifying the number of objects in the image and giving each  
object a unique pixel intensity.  
line gauge  
line profile  
Measures the distance between selected edges with high-precision subpixel  
accuracy along a line in an image. For example, this function can be used  
to measure distances between points and edges. This function also can step  
and repeat its measurements across the image.  
Represents the gray-level distribution along a line of pixels in an image.  
© National Instruments Corporation  
G-9  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
linear filter  
A special algorithm that calculates the value of a pixel based on its own  
pixel value as well as the pixel values of its neighbors. The sum of this  
calculation is divided by the sum of the elements in the matrix to obtain  
a new pixel value.  
logarithmic function  
logic operators  
Increases the brightness and contrast in dark regions of an image and  
decreases the contrast in bright regions of the image.  
The image operations AND, NAND, OR, XOR, NOR, XNOR, difference,  
mask, mean, max, and min.  
lossless compression  
lossy compression  
lowpass attenuation  
Compression in which the decompressed image is identical to the original  
image.  
Compression in which the decompressed image is visually similar but not  
identical to the original image.  
Applies a linear attenuation to the frequencies in an image, with no  
attenuation at the lowest frequency and full attenuation at the highest  
frequency.  
lowpass FFT filter  
lowpass filter  
Removes or attenuates high frequencies present in the FFT domain of an  
image.  
Attenuates intensity variations in an image. You can use these filters to  
smooth an image by eliminating fine details and blurring edges.  
lowpass  
frequency filter  
Attenuates high frequencies present in the frequency domain of the image.  
A lowpass frequency filter suppresses information related to fast variations  
of light intensities in the spatial image.  
lowpass truncation  
L-skeleton function  
luma  
Removes all frequency information above a certain frequency.  
Uses an L-shaped structuring element in the skeleton function.  
The brightness information in the video picture. The luma signal amplitude  
varies in proportion to the brightness of the video signal and corresponds  
exactly to the monochrome picture.  
luminance  
LUT  
See luma.  
Lookup table. A table containing values used to transform the gray-level  
values of an image. For each gray-level value in the image, the  
corresponding new value is obtained from the lookup table.  
IMAQ Vision for Visual Basic User Manual  
G-10  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Glossary  
M
M
(1) Mega, the standard metric prefix for 1 million or 106, when used with  
units of measure such as volts and hertz.  
(2) Mega, the prefix for 1,048,576, or 220, when used with B to quantify  
data or computer memory.  
machine vision  
mask FFT filter  
match score  
An automated application that performs a set of visual inspection tasks.  
Removes frequencies contained in a mask (range) specified by the user.  
A number ranging from 0 to 1000 that indicates how closely an acquired  
image matches the template image. A match score of 1000 indicates a  
perfect match. A match score of 0 indicates no match.  
MB  
Megabyte of memory.  
median filter  
A lowpass filter that assigns to each pixel the median value of its neighbors.  
This filter effectively removes isolated pixels without blurring the contours  
of objects.  
memory buffer  
MMX  
See buffer.  
Multimedia Extensions. An Intel chip-based technology that allows  
parallel operations on integers, which results in accelerated processing  
of 8-bit images.  
morphological  
transformations  
Extract and alter the structure of objects in an image. You can use these  
transformations for expanding (dilating) or reducing (eroding) objects,  
filling holes, closing inclusions, or smoothing borders. They are used  
primarily to delineate objects and prepare them for quantitative inspection  
analysis.  
M-skeleton function  
Uses an M-shaped structuring element in the skeleton function.  
N
neighbor  
A pixel whose value affects the value of a nearby pixel when an image is  
processed. The neighbors of a pixel are usually defined by a kernel or a  
structuring element.  
neighborhood  
operations  
Operations on a point in an image that take into consideration the values of  
the pixels neighboring that point.  
© National Instruments Corporation  
G-11  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
NI-IMAQ  
The driver software for National Instruments IMAQ hardware.  
nonlinear filter  
Replaces each pixel value with a nonlinear function of its surrounding  
pixels.  
nonlinear  
A highpass edge-extraction filter that favors vertical edges.  
gradient filter  
nonlinear Prewitt filter  
A highpass, edge-extraction filter based on two-dimensional gradient  
information.  
nonlinear Sobel filter  
A highpass, edge-extraction filter based on two-dimensional gradient  
information. The filter has a smoothing effect that reduces noise  
enhancements caused by gradient operators.  
Nth order filter  
Filters an image using a nonlinear filter. This filter orders (or classifies)  
the pixel values surrounding the pixel being processed. The pixel being  
processed is set to the Nth pixel value, where N is the order of the filter.  
number of planes  
(in an image)  
The number of arrays of pixels that compose the image. A gray-level or  
pseudo-color image is composed of one plane, while an RGB image is  
composed of three planes (one for the red component, one for the blue,  
and one for the green).  
O
OCR  
Optical Character Recognition. The ability of a machine to read  
human-readable text.  
OCV  
offset  
Optical Character Verification. A machine vision application that inspects  
the quality of printed characters.  
The coordinate position in an image where you want to place the origin of  
another image. Setting an offset is useful when performing mask  
operations.  
opening  
An erosion followed by a dilation. An opening removes small objects and  
smooths boundaries of objects in the image.  
operators  
Allow masking, combination, and comparison of images. You can use  
arithmetic and logic operators in IMAQ Vision.  
IMAQ Vision for Visual Basic User Manual  
G-12  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
optical representation  
outer gradient  
Contains the low-frequency information at the center and the high-  
frequency information at the corners of an FFT-transformed image.  
Finds the outer boundary of objects.  
P
palette  
The gradation of colors used to display an image on screen, usually defined  
by a CLUT.  
particle  
A connected region or grouping of non-zero pixels in a binary image.  
particle analysis  
A series of processing operations and analysis functions that produce some  
information about the particles in an image.  
pattern matching  
The technique used to locate quickly a grayscale template within a  
grayscale image  
picture element  
pixel  
An element of a digital image. Also called pixel.  
Picture element. The smallest division that makes up the video scan line.  
For display on a computer monitor, a pixel's optimum dimension is square  
(aspect ratio of 1:1, or the width equal to the height).  
pixel aspect ratio  
The ratio between the physical horizontal size and the vertical size of the  
region covered by the pixel. An acquired pixel should optimally be square,  
thus the optimal value is 1.0, but typically it falls between 0.95 and 1.05,  
depending on camera quality.  
pixel calibration  
pixel depth  
PNG  
Directly calibrates the physical dimensions of a pixel in an image.  
The number of bits used to represent the gray level of a pixel.  
Portable Network Graphic. An image file format for storing 8-bit, 16-bit,  
and color images with lossless compression. PNG images have the file  
extension PNG.  
Prewitt filter  
An edge detection algorithm that extracts the contours in gray-level values  
using a 3 × 3 filter kernel.  
© National Instruments Corporation  
G-13  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
proper-closing  
proper-opening  
A finite combination of successive closing and opening operations that you  
can use to fill small holes and smooth the boundaries of objects.  
A finite combination of successive opening and closing operations that you  
can use to remove small particles and smooth the boundaries of objects.  
Q
quantitative analysis  
Obtaining various measurements of objects in an image.  
R
real time  
A property of an event or system in which data is processed as it is acquired  
instead of being accumulated and processed at a later time.  
resolution  
reverse function  
RGB  
The number of rows and columns of pixels. An image composed of m rows  
and n columns has a resolution of  
Inverts the pixel values in an image, producing a photometric negative of  
the image.  
A color encoding scheme using red, green, and blue (RGB) color  
information where each pixel in the color image is encoded using 32 bits:  
8 bits for red, 8 bits for green, 8 bits for blue, and 8 bits for the alpha value  
(unused).  
RGB U64  
A color encoding scheme using red, green, and blue (RGB) color  
information where each pixel in the color image is encoded using 64 bits:  
16 bits for red, 16 bits for green, 16 bits for blue, and 16 bits for the alpha  
value (unused).  
Roberts filter  
An edge detection algorithm that extracts the contours in gray level,  
favoring diagonal edges.  
IMAQ Vision for Visual Basic User Manual  
G-14  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Glossary  
ROI  
Region of interest.  
(1) An area of the image that is graphically selected from a window  
displaying the image. This area can be used focus further processing.  
(2) A hardware-programmable rectangular portion of the acquisition  
window.  
ROI tools  
A collection of tools that enable you to select a region of interest from an  
image. These tools let you select points, lines, annuli, polygons, rectangles,  
rotated rectangles, ovals, and freehand open and closed contours.  
rotational shift  
The amount by which one image is rotated relative to a reference image.  
This rotation is computed relative to the center of the image.  
rotation-invariant  
matching  
A pattern matching technique in which the reference pattern can be located  
at any orientation in the test image as well as rotated at any degree.  
S
saturation  
The amount of white added to a pure color. Saturation relates to the richness  
of a color. A saturation of zero corresponds to a pure color with no white  
added. Pink is a red with low saturation.  
scale-invariant  
matching  
A pattern matching technique in which the reference pattern can be any size  
in the test image.  
segmentation function  
Fully partitions a labeled binary image into non-overlapping segments,  
with each segment containing a unique object.  
separation function  
Separates objects that touch each other by narrow isthmuses.  
shift-invariant  
matching  
A pattern matching technique in which the reference pattern can be located  
anywhere in the test image but cannot be rotated or scaled.  
skeleton function  
smoothing filter  
Sobel filter  
Applies a succession of thinning operations to an object until its width  
becomes one pixel.  
Blurs an image by attenuating variations of light intensity in the  
neighborhood of a pixel.  
An edge detection algorithm that extracts the contours in gray-level values  
using a 3 × 3 filter kernel.  
spatial calibration  
Assigns physical dimensions to the area of a pixel in an image.  
© National Instruments Corporation  
G-15  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
spatial filters  
Alter the intensity of a pixel relative to variations in intensities of its  
neighboring pixels. You can use these filters for edge detection, image  
enhancement, noise reduction, smoothing, and so forth.  
spatial resolution  
The number of pixels in an image, in terms of the number of rows and  
columns in the image.  
square function  
See exponential function.  
square root function  
standard representation  
See logarithmic function.  
Contains the low-frequency information at the corners and high-frequency  
information at the center of an FFT-transformed image.  
structuring element  
subpixel analysis  
A binary mask used in most morphological operations. A structuring  
element is used to determine which neighboring pixels contribute in the  
operation.  
Finds the location of the edge coordinates in terms of fractions of a pixel.  
T
template  
A color, shape, or pattern that you are trying to match in an image using the  
color matching, shape matching, or pattern matching functions. A template  
can be a region selected from an image or it can be an entire image.  
threshold  
Separates objects from the background by assigning all pixels with  
intensities within a specified range to the object and the rest of the pixels to  
the background. In the resulting binary image, objects are represented with  
a pixel intensity of 255 and the background is set to 0.  
threshold interval  
TIFF  
Two parameters, the lower threshold gray-level value and the upper  
threshold gray-level value.  
Tagged Image File Format. An image format commonly used for encoding  
8-bit, 16-bit, and color images. TIFF images have the file extension TIF.  
time-bounded  
tools palette  
Describes algorithms that are designed to support a lower and upper bound  
on execution time.  
A collection of tools that enable you to select regions of interest, zoom in  
IMAQ Vision for Visual Basic User Manual  
G-16  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
V
value  
The grayscale intensity of a color pixel computed as the average of the  
maximum and minimum red, green, and blue values of that pixel.  
© National Instruments Corporation  
G-17  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
building  
coordinate transformation with edge  
Numerics  
detection, 5-3  
coordinate transformation with pattern  
building coordinate transformations, 5-7  
A
acquiring images, 2-4  
continuous acquisition, 2-5  
one-shot acquisition, 2-4  
Acquisition Type combo box, 2-4  
ActiveX objects, 1-5  
adding shapes to ROIs, 3-5  
analyzing images, 2-7, 2-8  
Annulus tool, 3-2  
calibrating images, 2-2, 6-1  
nonlinear, 6-1  
perspective, 6-1  
Application, 1-6  
application development  
arrays, converting to images, 2-6  
attaching calibration information to images,  
2-7, 6-10  
attaching to images, 2-7, 6-10  
method, 3-6  
centroid method, 3-6  
characters  
attenuation  
reading, 5-29  
training, 5-29  
circle, finding points along the edge, 5-10  
circles, finding, 5-10  
classifying objects, 5-29  
color content, evaluating in images, 3-9  
color information  
learning, 3-9  
specifying, 3-10  
color location, finding points, 5-25  
color matching, 3-10  
B
barcodes  
reading, 5-29  
reading 1D, 5-29  
reading data matrix barcodes, 5-30  
reading PDF417 barcodes, 5-31  
binary images, improving, 4-2  
Broken Line tool, 3-2  
© National Instruments Corporation  
I-1  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Index  
color pattern matching  
creating  
binary images, 4-1, 4-2  
finding points, 5-19  
optimize speed with search strategy, 5-23  
training, 5-21  
images, 2-2  
IMAQ Vision applications, 1-5  
template images, 5-13  
CWIMAQ control, 1-3  
color scores, 5-24  
color sensitivity, using to control granularity  
in template images, 5-23  
color spectrums, learning, 3-10  
color statistics, measuring, 3-6, 3-7  
color template images, defining, 5-20  
color, comparing in a specified region, 3-11  
colors  
CWIMAQViewer control, 1-3  
CWIMAQVision, 1-3  
data matrix barcodes, 5-30  
reading, 5-30  
learning, 3-12  
significant colors in the image, 3-10  
comparing colors in a specified region, 3-11  
complex images, 2-12  
converting to arrays, 2-12  
continuous acquisition, 2-5  
contrast  
color pattern matching algorithms, 5-25  
pattern matching algorithms, 5-18  
converting  
defining  
calibration templates, 6-2  
color template images, 5-20  
effective template images, 5-13  
reference coordinate systems, 6-3  
regions interactively, 5-8  
regions of interest, 3-1  
regions of interest interactively, 3-1  
ROIs programmatically, 3-5  
complex images to arrays, 2-12  
coordinates, 5-26  
search areas, 5-16  
the pattern, 5-20  
convolution filter, 2-10  
deployment, application, xi  
detecting objects, 5-2  
diagnostic tools (NI resources), A-1  
displaying  
coordinate systems, reference, 6-3  
coordinate transformation  
building with edge detection, 5-3  
building with pattern matching, 5-5  
correction tables, learning, 6-8  
images, 2-6  
results, 5-31  
distance measurements, 5-26  
IMAQ Vision for Visual Basic User Manual  
I-2  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
documentation  
conventions used in manual, ix  
Freeline tool, 3-3  
NI resources, A-1  
related documentation, x  
G
geometrical measurements, 5-27  
granularity  
drivers  
color, 3-12  
NI-IMAQ, xi  
using color sensitivity to control, 5-23  
grayscale features, filtering, 2-10  
features, 2-10  
E
edge detection, 5-3  
finding features, 5-9  
edge points, finding along multiple search  
contours, 5-12  
error map, learning, 6-8  
help, technical support, A-1  
highpass  
attenuation, 2-12  
filter, 2-9  
F
features, finding with edge detection, 5-9  
FFT, 2-11  
I
files, reading, 2-6  
filtering  
images, 2-9, 2-10  
acquiring, 2-4  
2-7, 6-10  
calibrating, 2-2  
complex, 2-12  
creating, 2-2  
finding  
contour, 5-11  
features with edge detection, 5-9  
lines, 5-10  
displaying, 2-6  
evaluating color content, 3-9  
filtering, 2-9, 2-10  
filtering grayscale features, 2-10  
highlighting details using LUTs, 2-9  
improving, 2-9  
measuring, 5-26  
reading, 2-4  
signal-to-noise ratio, 2-9  
transitions, 2-9  
measurement points, 5-9  
points along the edge of a circle, 5-10  
points using color pattern matching, 5-19  
points using pattern matching, 5-12  
points with color location, 5-25  
Free Region tool, 3-3  
© National Instruments Corporation  
I-3  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
imaging systems, setting up, 2-1  
IMAQ Vision applications, creating, 1-5  
improving  
light intensity, measuring, 3-6  
lighting effects on image colors, 3-11  
Line tool, 3-2  
binary images, 4-2  
lines, finding, 5-10  
locating objects to detect, 5-2  
increasing  
attenuation, 2-12  
filter, 2-9  
LUTs, 2-9  
algorithm, 5-18  
instrument, A-1  
instrument drivers, xi  
instrument reader measurements, 5-28  
interactively defining regions, 5-8  
M
machine vision, 5-1  
masks, defining regions of interest, 3-6  
measurement points, finding, 5-9  
measurements  
distance, 5-26  
geometry, 5-27  
instrument reader, 5-28  
measuring  
K
grayscale statistics, 3-6  
light intensity, 3-6  
particles, 4-4  
L
learning, 6-5  
calibration information, 6-5  
color information, 3-9  
color spectrums, 3-10  
colors, 3-12  
correction tables, 6-8  
method for building coordinate  
transformations, 5-7  
multiple ROIs, using to view color differences  
in an image, 3-11  
error maps, 6-8  
learning algorithm, specifying, 6-6  
learning calibration information  
correction tables, 6-8  
points, 5-12  
error maps, 6-8  
setting the scaling mode, 6-8  
specifying a learning algorithm, 6-6  
specifying a region of interest, 6-6  
using learning scores, 6-7  
voiding calibrations, 6-9  
learning score, using, 6-7  
National Instruments support and  
services, A-1  
NI-IMAQ, xi  
niocr.ocx, 1-4  
nonlinear calibration, 6-1  
Nth order filter, 2-10  
IMAQ Vision for Visual Basic User Manual  
I-4  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
finding along one search contour, 5-11  
O
objects  
finding along the edge of a circle, 5-10  
finding measurement points, 5-9  
finding with color location, 5-25  
finding with color pattern matching, 5-19  
finding with pattern matching, 5-12  
classifying, 5-29  
locating, 5-2  
OCR, 5-29  
one-shot acquisition, 2-4  
algorithm, 5-23  
Polygon tool, 3-3  
programmatically defining  
regions, 5-9  
Oval tool, 3-2  
programming examples (NI resources), A-1  
P
Pan tool, 3-3  
particle analysis, 4-1  
results, 5-19  
performing, 4-1  
particle measurements, 4-4  
particle shapes, improving, 4-4  
particles  
measuring, 4-4  
removing unwanted, 4-3  
pattern matching  
barcodes, 5-29  
characters, 5-29  
files, 2-6  
images, 2-4  
reference coordinate systems, 6-3  
defining, 6-3  
region of interest, 6-6  
specifying, 6-6  
building a coordinate transformation, 5-5  
finding points, 5-12  
score, 5-24  
setting rotation angle ranges, 5-18  
setting tolerances, 5-17, 5-23  
tolerances, setting, 5-23  
training algorithm, 5-15  
verifying results, 5-19  
pattern matching algorithms  
regions  
defining interactively, 5-8  
programmatically defining, 5-9  
regions of interest  
defining, 3-1  
defining interactively, 3-1  
defining with masks, 3-6  
related documentation, x  
removing unwanted particles, 4-3  
results  
displaying, 5-31  
verifying for pattern matching, 5-19  
ROI selection methods, 5-8  
reading, 5-31  
performing particle analysis, 4-1  
perspective calibration, 6-1  
pixel coordinates, converting to real-world  
coordinates, 5-26  
Point tool, 3-2  
© National Instruments Corporation  
I-5  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
ROIs  
specifying  
adding shapes, 3-5  
programmatically defining, 3-5  
Rotated Rectangle tool, 3-2  
rotation angle ranges  
granularity to learn a color, 3-12  
learning algorithm, 6-6  
scaling factors, 6-6  
increasing for color pattern matching  
algorithms, 5-25  
increasing for pattern matching  
S
scaling mode, setting, 6-8  
search algorithms, testing on test images,  
5-18, 5-25  
support, technical, A-1  
symmetric templates, 5-13  
search area, defining, 5-16, 5-22  
search areas, 5-8  
template  
setting, 5-8  
multiple search contours, 5-12  
color pattern matching algorithms, 5-23  
Selection tool, 3-2  
defining with colors that are unique to the  
pattern, 5-20  
strong edges, 5-14  
template images  
setting  
granularity, 5-23  
templates  
matching, 5-18, 5-25  
background information, 5-21  
calibration, 6-2  
scaling mode, 6-8  
search areas, 5-8  
coarse features, 5-20  
detail, 5-20  
setting up measurement systems, 2-1  
shape scores, 5-24  
positional information, 5-20  
strong edges, 5-20  
signal-to-noise ratio, 2-9  
simple calibration, 6-9  
test images, testing search algorithms,  
5-18, 5-25  
IMAQ Vision for Visual Basic User Manual  
I-6  
ni.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
testing search algorithms, 5-18, 5-25  
tolerances, setting for pattern matching, 5-17  
touching particles, separating, 4-3  
training  
viewing color differences in an image using  
Vision for Visual Basic organization, 1-2  
voiding calibrations, 6-9  
characters, 5-29  
color pattern matching algorithms, 5-21  
pattern matching algorithm, 5-15  
troubleshooting (NI resources), A-1  
Web resources, A-1  
U
using  
Z
Zoom tool, 3-3  
learning scores, 6-7  
ranking to verify pattern matching  
results, 5-19  
© National Instruments Corporation  
I-7  
IMAQ Vision for Visual Basic User Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  

Miele Ventilation Hood DA 6520 W User Manual
MTD Yard Vacuum 242 675A User Manual
Multiquip Pole Saw SP1CE13H18 User Manual
NexxTech Calculator 6500542 User Manual
Nikon Camera Accessories Zoom Nikkor 100 300mm f 56 User Manual
OmniTek Frozen Dessert Maker OmniTek XR User Manual
Optimus Katadyn Products Inc VCR MODEL 111 User Manual
Panasonic Air Conditioner CS MKE12NKU 1 852 361 01 230 208 1 60 SSA 46 User Manual
Panasonic Electric Shaver ES2015 User Manual
Parkside Paint Sprayer PFS 100 B2 User Manual