background image

Chapter 5

Machine Vision

IMAQ Vision for LabWindows/CVI User Manual

5-22

ni.com

Figure 5-12.

Selecting a Search Area for Color Pattern Matching

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.

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. Knowing your particular application and the images you want
to process is useful in selecting the pattern matching parameters. Use the

options

parameter of

imaqMatchColorPattern()

to set these elements.

1

Search Area for 20 Amp Fuses

2

Search Area for 25 Amp Fuses

1

2

Summary of Contents for IMAQ Vision for Measurement Studio

Page 1: ...IMAQ IMAQ Vision for Measurement Studio User Manual LabWindows CVI IMAQ Vision for LabWindows CVI User Manual May 2001 Edition Part Number 323022A 01...

Page 2: ...Germany 089 741 31 30 Greece 30 1 42 96 427 Hong Kong 2645 3186 India 91805275406 Israel 03 6120092 Italy 02 413091 Japan 03 5472 2970 Korea 02 596 7456 Mexico D F 5 280 7625 Mexico Monterrey 8 357 7...

Page 3: ...buse 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 ma...

Page 4: ...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...

Page 5: ...System 2 2 Create an Image 2 2 Source and Destination Images 2 4 Acquire or Read an Image 2 5 Acquiring an Image 2 6 Reading a File 2 6 Converting an Array to an Image 2 7 Display an Image 2 7 Attach...

Page 6: ...on to Build a Coordinate Transform 5 3 Using Pattern Matching to Build a Coordinate Transform 5 5 Choosing a Method to Build the Coordinate Transform 5 7 Set Search Areas 5 8 Interactively Defining Re...

Page 7: ...27 Instrument Reader Measurements 5 27 Display Results 5 28 Chapter 6 Calibration Perspective and Nonlinear Distortion Calibration 6 1 Defining a Calibration Template 6 2 Defining a Reference Coordina...

Page 8: ...sion and scientific imaging applications IMAQ Vision for Visual Basic is a collection of ActiveX controls that offer the same imaging functionality as IMAQ Vision for LabWindows CVI National Instrumen...

Page 9: ...als 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 visi...

Page 10: ...ns that create and manipulate regions of interest File I O Functions that read and write images to and from files Calibration Functions that learn calibration information and correct distorted images...

Page 11: ...ad the meter Utilities Functions that return structures and a function that returns a pointer to predefined convolution matrices Obsolete Functions that are no longer necessary but may exist in older...

Page 12: ...IMAQ Vision application For more information about items in either diagram see the corresponding chapter listed to the right of the item Note Diagram items enclosed with dashed lines are optional ste...

Page 13: ...ements Measure Grayscale Statistics Measure Color Statistics 1 Correct Image Distortion Create a Binary Image Improve a Binary Image Make Particle Measurements Chapter 4 Blob Analysis Convert Pixel Co...

Page 14: ...u need given your space constraints and the size of the object you need to inspect For more information see Chapter 3 System Setup and Calibration of the IMAQ Vision Concepts Manual a Make sure your c...

Page 15: ...nsate for perspective and nonlinear errors inherent in your imaging system Perspective errors occur when your camera axis is not perpendicular to the object under inspection Nonlinear distortion may o...

Page 16: ...inters The number of image pointers a function takes depends on the image processing function and the type of image you want to use Some IMAQ Vision functions act directly on the image and require onl...

Page 17: ...ion image to hold the result if the destination is not the appropriate size The following examples illustrate source and destination images with imaqTranspose imaqTranspose myImage myImage This functi...

Page 18: ...hat the processing or analysis is dependent on the contents of another image the image mask The only pixels in the source image that are processed are those whose corresponding pixels in the image mas...

Page 19: ...return a copy of the current image Use imaqStopAcquisition to stop the acquisition Acquire a fixed number of images using a sequence acquisition Set up the acquisition using imaqSetupSequence Use ima...

Page 20: ...indows Use the other display functions to configure the appearance of each external window Properties you can set include whether the window has scroll bars is resizable or has a title bar You can als...

Page 21: ...image quality is high enough for your inspection task To obtain the values of parameters that you want to use in processing functions during the inspection process The histogram and line profile tool...

Page 22: ...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 insp...

Page 23: ...se 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 an...

Page 24: ...ing 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 hi...

Page 25: ...ove your image in the frequency domain with a lowpass or highpass frequency filter Specify which type of filter to use with imaqAttenuate or imaqTruncate Lowpass filters smooth noise details textures...

Page 26: ...the spatial domain use imaqInverseFFT Complex Image Operations The imaqExtractComplexPlane and imaqReplaceComplexPlane functions allow you to access process and update independently the real and imag...

Page 27: ...ent with a reference Figure 3 1 illustrates the basic steps involved in making grayscale and color measurements Figure 3 1 Steps to Taking Grayscale and Color Measurements Define Regions of Interest A...

Page 28: ...e Action Click on 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 t...

Page 29: ...wn Ctrl while drawing additional ROIs You can display the IMAQ Vision tools palette as part of an ROI constructor window or in a separate floating window Follow these steps to invoke an ROI constructo...

Page 30: ...ion you selected You can input the ROI descriptor into many analysis and processing functions You can also convert the ROI descriptor into an image mask which you can use to process selected regions i...

Page 31: ...ce of the tools window Use imaqMoveToolWindow to move the tools palette Use imaqCloseToolWindow to close the tools palette If you want to draw an ROI without using an ROI constructor or displaying the...

Page 32: ...ly To programmatically define an ROI create the ROI using imaqCreateROI and then add the individual contours A contour is a shape that defines an ROI You can create contours from points lines rectangl...

Page 33: ...eviation minimum intensity and maximum intensity Use imaqLightMeterRect to get the pixel value statistics within a rectangular region in an image Use imaqQuantify to obtain the following statistics ab...

Page 34: ...into an 8 bit image 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 Follow these steps to compare...

Page 35: ...This function 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 colo...

Page 36: ...esents 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...

Page 37: ...r spectra for identical fuses 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 yo...

Page 38: ...lor information An image containing a few well separated colors in the color space requires a lower sensitivity to describe the color than an image that contains colors that are close to one another i...

Page 39: ...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 backgrou...

Page 40: ...s such as detecting flaws on silicon wafers or detecting soldering defects on electronic boards Examples of how blob analysis can help you perform web inspection tasks include locating structural defe...

Page 41: ...interest in your grayscale image fall within a continuous range of intensities and you can specify this threshold range manually use imaqThreshold to threshold your image If all the objects in your gr...

Page 42: ...that touch at one point use connectivity 4 to ensure that the software recognizes the pixels as two separate blobs For more information about connectivity see Chapter 9 Binary Morphology of the IMAQ...

Page 43: ...th your application Improving Blob Shapes Use imaqFillHoles to fill holes in the blobs Use imaqMorphology to perform a variety of operations on the blobs You can use the IMAQ_AUTOM IMAQ_CLOSE IMAQ_PCL...

Page 44: ...s within the particle IMAQ_AREA_OF_HOLES total area of the particle holes in pixels IMAQ_TOTAL_AREA area of the particle and its holes IMAQ_IMAGE_AREA area of the entire image in real world units IMAQ...

Page 45: ...A_XY sum of the product of the x coordinate and y coordinate for each pixel of the particle IMAQ_PROJ_X sum of the vertical segments in a particle IMAQ_PROJ_Y sum of the horizontal segments in a parti...

Page 46: ...the particle in user defined units IMAQ_RECT_LONG_SIDE length of the long side of a rectangle having the same area and perimeter as the particle in user defined units IMAQ_RECT_SHORT_SIDE length of t...

Page 47: ...kes 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 use the edge location to measure the width of th...

Page 48: ...images you need to process defining regions of interest is simple See the Set Search Areas section for information about selecting a region of interest Often the object under inspection appears rotat...

Page 49: ...ome machine vision functions take this output and adjust the regions of inspection automatically You can also use these outputs to move the regions of inspection relative to the object programmaticall...

Page 50: ...sformRects specify two rectangles 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...

Page 51: ...FERENCE To update the coordinate transform in subsequent images set this mode to IMAQ_UPDATE_TRANSFORM Using Pattern Matching to Build a Coordinate Transform You can build a coordinate transform using...

Page 52: ...parameter to select your options for finding the pattern and the results that you want to overlay onto the image When setting the Mode element select IMAQ_MATCH_ROTATION_INVARIANT when you expect your...

Page 53: ...has a straight distinct edge main axis The object contains a second distinct edge not parallel to the main axis in a separate search area The object contains a second distinct edge not parallel to th...

Page 54: ...riptor of the region you selected You can input the ROI descriptor into many analysis and processing functions You can also use imaqSelectRect and imaqSelectAnnulus to define regions of interest Follo...

Page 55: ...the coordinates of the start and end points See Chapter 3 Grayscale and Color Measurements for more information about defining regions of interest Find Measurement Points After you set regions of ins...

Page 56: ...pter 5 Machine Vision IMAQ Vision for LabWindows CVI User Manual 5 10 ni com Figure 5 5 Finding a Straight Feature 1 Search Region 2 Search Lines 3 Detected Edge Points 4 Line Fit to Edge Points 2 1 4...

Page 57: ...e functions use to detect edges The functions 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...

Page 58: ...earch 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...

Page 59: ...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 the options parameter of imaqMatchPattern 5 Test t...

Page 60: ...odel with fine features However the model must contain enough detail to identify it Figure 5 8 Feature Detail Positional information A template with strong edges in both the x and y directions is easi...

Page 61: ...ing Use the learningMode parameter of imaqLearnPattern to specify which type of learning mode to use The learning process is usually time intensive because the algorithm attempts to find the optimum f...

Page 62: ...e 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...

Page 63: ...a region 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 r...

Page 64: ...n 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 algorithm is an indicator of the closeness be...

Page 65: ...ern 6 Test the search algorithm on test images using imaqMatchColorPattern 7 Verify the results using a ranking method Defining and Creating Good Color Template Images The selection of a good template...

Page 66: ...thm After you have created a good template image the color pattern matching algorithm learns the important features of the template Use imaqLearnColorPattern to learn the template The learning process...

Page 67: ...uity in the search process For example if your 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 c...

Page 68: ...tern 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...

Page 69: ...decrease For more information on color sensitivity see Chapter 14 Color Inspection of the IMAQ Vision Concepts Manual Search Strategy Use the strategy element to optimize the speed of the color patte...

Page 70: ...Contrast element to increase the color pattern matching algorithm s speed The color pattern matching algorithm ignores all image regions where grayscale contrast values fall beneath a set minimum cont...

Page 71: ...of the region Does not always require the location with sub pixel accuracy Does not require shape information for the region Follow these general steps to find features in an image using color locatio...

Page 72: ...ute the distance between the points detected on the edges along each search line of the rake and return the largest or smallest distance The imaqSelectRect function generates a valid input search regi...

Page 73: ...imaqGetMidLine Finds the line that is midway between a point and a line and is parallel to the line imaqGetPolygonArea Calculates the area of a polygon specified by its vertex points Instrument Reade...

Page 74: ...fy the image The overlay appears every time you display the image in an external window Use the following functions to overlay search regions inspection results and other information such as text and...

Page 75: ...h area input into the function The search lines used for edge detection The edges detected along the search lines The result of the function With imaqFindPattern you can overlay the search area and th...

Page 76: ...on 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 ima...

Page 77: ...should range from 18 to 32 pixels as shown in Figure 6 1 The minimum distance between the edges of the dots should be 6 pixels as shown in Figure 6 1 Figure 6 1 Defining a Calibration Grid Note You ca...

Page 78: ...hown in Figure 6 2a or direct as shown in Figure 6 2b 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...

Page 79: ...define a coordinate system yourself carefully consider the needs of your application Remember the following Express the origin in pixels Always choose an origin location that lies within the calibrati...

Page 80: ...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 c...

Page 81: ...calibration options selected Set the user defined ROI using the ROI parameter of either imaqLearnCalibrationGrid or imaqLearnCalibrationPoints Choosing a Learning Algorithm Select a method in which to...

Page 82: ...h Set the mode element of the options parameter to IMAQ_NONLINEAR to choose the nonlinear calibration algorithm Figure 6 6 Calibration ROIs Using the Learning Score The learning process returns a scor...

Page 83: ...r your application use a correction table The correction table is a lookup table stored in memory that contains the real world location information of all the pixels in the image The extra memory requ...

Page 84: ...gn the calibration to an arbitrary image using imaqSetSimpleCalibration To perform a simple calibration set a coordinate reference angle center and axis direction and scaling factors on the defined ax...

Page 85: ...libration information of the current setup to each image you acquire This function takes in a source image containing the calibration information and a destination image that you want to calibrate The...

Page 86: ...ly access the latest example programs system configurators tutorials technical news as well as a community of developers ready to share their own techniques Customer Education National Instruments pro...

Page 87: ...fice Web sites from the Worldwide Offices section of ni com Branch office Web sites provide up to date contact information support phone numbers e mail addresses and current events If you have searche...

Page 88: ...mma correction about a color image The alpha channel is stored as the first byte in the four byte representation of an RGB pixel annulus A region of interest that resembles a ring or partial ring area...

Page 89: ...f 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 bits a pixel can take 256 different values ranging from 0 to 255 If n equals 1...

Page 90: ...trated without changing the first moment of the object about any axis centroid 1 The average of the x coordinates and y coordinates of a binary image or a blob in the image The centroid of a blob may...

Page 91: ...lex image 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 32bits for the real part and 32bits for the im...

Page 92: ...ntensity information about an image or regions of an image Typical measurements include minimum maximum and mean intensity values as well as the standard deviation of the intensity values density func...

Page 93: ...with high entropy contains more pixel value variation than an image with low entropy equalize function See histogram equalization erosion Reduces the size of an object along its boundary and eliminat...

Page 94: ...nal s brightness level and the voltage level needed to produce that brightness gauging Measurement of an object or distances between objects Gaussian filter A filter similar to the smoothing filter bu...

Page 95: ...gray level value histogram equalization Transforms the gray level values of the pixels of an image to occupy the entire range 0 to 255 in an 8 bit image of the histogram increasing the contrast of the...

Page 96: ...ocess 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 additio...

Page 97: ...sity 1 The sum of the Red Green and Blue primary colors divided by three Red Green Blue 3 in a color image 2 The gray level value of a pixel in a grayscale image intensity calibration Assigning user d...

Page 98: ...s of objects in the image by highlighting the variation of light intensity surrounding a pixel line gauge Measures the distance between selected edges with high precision subpixel accuracy along a lin...

Page 99: ...ing 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 intens...

Page 100: ...itative inspection analysis MSB Most significant bit 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 pixe...

Page 101: ...t 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 openi...

Page 102: ...red 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 Directly calibrat...

Page 103: ...and n columns has a resolution of m n reverse function Inverts the pixel values in an image RGB Color encoding scheme using red green and blue RGB color information where each pixel in the color imag...

Page 104: ...ied by a shape template The matching process is invariant to rotation and can be set to be invariant to the scale of the objects shift invariant matching A pattern matching technique in which the refe...

Page 105: ...matching functions A template can be a region selected from an image or it can be an entire image thickening Alters the shape of objects by adding parts to the object that match the pattern specified...

Page 106: ...lue values of that pixel W watershed A technique used to segment an image into multiple regions web inspection The process of detecting defects in a continuous sheet of materials at production speeds...

Page 107: ...ing blobs 4 4 particle measurements 4 4 to 4 7 steps figure 4 1 Broken Line tool table 3 2 C calibration 6 1 to 6 10 attaching calibration information to images 2 8 6 10 defining reference coordinate...

Page 108: ...used in manual iv converting array to image 2 7 convolution filters 2 10 coordinate reference for calibration defining 6 2 to 6 5 coordinate transform building choosing method figure 5 7 edge detectio...

Page 109: ...e 6 6 H highpass filters 2 10 highpass frequency filters attenuation 2 12 truncation 2 12 I ignoring learned colors 3 13 images See also blob analysis acquiring or reading 2 5 to 2 7 analyzing 2 8 to...

Page 110: ...10 IMAQ_ERODE method 4 3 imaqExtractColorPlanes function 3 7 3 8 imaqExtractComplextPlane function 2 13 imaqExtractFromRing function 2 6 imaqFFT function 2 12 imaqFillHoles function 4 4 imaqFindCircul...

Page 111: ...5 28 imaqOverlayText function 5 28 imaqParticleFilter function 4 4 IMAQ_PCLOSE method 4 4 IMAQ_POPEN method 4 3 4 4 imaqQuantify function 3 7 imaqRake function 5 12 imaqReadBarcode function 5 28 imaq...

Page 112: ...locating objects to inspect See machine vision lookup table transformations 2 9 to 2 10 lowpass filters 2 10 lowpass frequency filters attenuation 2 12 truncation 2 12 M machine vision 5 1 to 5 29 co...

Page 113: ...emplate images 5 13 to 5 15 defining search area 5 15 to 5 16 general steps 5 13 setting matching parameters and tolerances 5 16 to 5 17 testing search algorithm on test images 5 18 training the algor...

Page 114: ...stics system integration by National Instruments A 1 T technical support resources A 1 to A 2 template for calibration defining 6 2 template images defining color pattern matching 5 19 to 5 20 pattern...

Reviews: