; ; [name] ; arraysize -- comma separated list of "param:numParam" where param is the ; name of the pointer parameter, and numParam is the name of ; the parameter that contains the array size for the pointer ; retarraysize -- name of the pass-by-reference parameter that on function ; return contains the array size of the returned pointer ; exclude -- if True, no code is output for this name (full custom) ; underscore -- if True, only underscored raw wrapper is output (partial custom) ; outparams -- comma separated list of output parameter names ; inparams -- comma separated list of parameter names that are input ; parameters (e.g. not output parameters) ; defaults -- comma separated list of "param:default" where param is the ; parameter name and default is the default value ; exclude_members -- for structures, members to not emit ; nullok -- comma separated list of parameter names that may be null ; retref -- parameter that (if non-null) is returned as a reference ; retunowned -- if True, return value should not be owned ; ; The generator code auto-detects many parameters, so this file is only needed ; for overriding the auto-detected behavior. ; defines [IMAQ_IMPORT] exclude=True [IMAQ_FUNC] exclude=True [IMAQ_STDCALL] exclude=True [IMAQ_CALLBACK] exclude=True [IMAQ_DEFAULT_LEARNING_MODE] exclude=True [ERR_INVALID_COLORCOMPLEXITY] exclude=True ; structures [PolyModel] arraysize=kCoeffs:numKCoeffs [CalibrationReferencePoints] arraysize=pixelCoords:numPixelCoords,realCoords:numRealCoords [GetCameraParametersReport] #TODO: projectionMatrix:projectionMatrixRows*projectionMatrixCols exclude_members=projectionMatrix [GetCalibrationInfoReport] #TODO: errorMap:errorMapRows*errorMapCols exclude_members=errorMap [ContourFitSplineReport] arraysize=points:numberOfPoints [ContourFitPolynomialReport] arraysize=bestFit:numberOfPoints,polynomialCoefficients:numberOfCoefficients [SetupMatchPatternData] arraysize=matchSetupData:numMatchSetupData [ContourInfoReport] arraysize=pointsPixel:numPointsPixel,pointsReal:numPointsReal,curvaturePixel:numCurvaturePixel,curvatureReal:numCurvatureReal [SupervisedColorSegmentationReport] arraysize=labelOut:numLabelOut [LabelToROIReport] arraysize=roiArray:numOfROIs,labelsOutArray:numOfLabels,isTooManyVectorsArray:isTooManyVectorsArraySize [ClassifiedCurve] arraysize=curvePoints:numCurvePoints [CurvatureAnalysisReport] arraysize=curves:numCurves [ComputeDistancesReport] arraysize=distances:numDistances,distancesReal:numDistancesReal [ClassifiedDisparity] arraysize=templateSubsection:numTemplateSubsection,targetSubsection:numTargetSubsection [ClassifyDistancesReport] arraysize=classifiedDistances:numClassifiedDistances [ContourComputeCurvatureReport] arraysize=curvaturePixel:numCurvaturePixel,curvatureReal:numCurvatureReal [ExtractContourReport] arraysize=contourPoints:numContourPoints,sourcePoints:numSourcePoints [ExtractTextureFeaturesReport] arraysize=waveletBands:numWaveletBands #TODO: textureFeatures:textureFeaturesRows:textureFeaturesCols exclude_members=textureFeatures [WaveletBandsReport] #TODO: LLBand:rows:cols #TODO: LHBand:rows:cols #TODO: HLBand:rows:cols #TODO: HHBand:rows:cols #TODO: LLLBand:rows:cols #TODO: LLHBand:rows:cols #TODO: LHHBand:rows:cols exclude_members=LLBand,LHBand,HLBand,HHBand,LLLBand,LLHBand,LHHBand [MeasureParticlesReport] #TODO: pixelMeasurements:numParticles:numMeasurements #TODO: calibratedMeasurements:numParticles:numMeasurements exclude_members=pixelMeasurements,calibratedMeasurements [ClassifierReportAdvanced] arraysize=allScores:allScoresSize,sampleScores:sampleScoresSize [FindEdgeReport] arraysize=straightEdges:numStraightEdges [ReadTextReport3] arraysize=characterReport:numCharacterReports [EdgeReport2] arraysize=edges:numEdges,gradientInfo:numGradientInfo [ConcentricRakeReport2] arraysize=firstEdges:numFirstEdges,lastEdges:numLastEdges,searchArcs:numSearchArcs [SpokeReport2] arraysize=firstEdges:numFirstEdges,lastEdges:numLastEdges,searchLines:numSearchLines [RakeReport2] arraysize=firstEdges:numFirstEdges,lastEdges:numLastEdges,searchLines:numSearchLines [QRCodeDataToken] arraysize=data:dataLength [StraightEdgeReport2] arraysize=straightEdges:numStraightEdges,searchLines:numSearchLines [StraightEdge] arraysize=usedEdges:numUsedEdges [QRCodeReport] arraysize=data:dataLength,tokenizedData:sizeOfTokenizedData [DataMatrixReport] arraysize=data:dataLength [ReadTextReport2] arraysize=characterReport:numCharacterReports [FeatureData] arraysize=contourPoints:numContourPoints uniontype=feature:type:IMAQ_CIRCLE_FEATURE=circle:IMAQ_ELLIPSE_FEATURE=ellipse:IMAQ_CONST_CURVE_FEATURE=constCurve:IMAQ_RECTANGLE_FEATURE=rectangle:IMAQ_LEG_FEATURE=leg:IMAQ_CORNER_FEATURE=corner:IMAQ_PARALLEL_LINE_PAIR_FEATURE=parallelLinePair:IMAQ_PAIR_OF_PARALLEL_LINE_PAIRS_FEATURE=pairOfParallelLinePairs:IMAQ_LINE_FEATURE=line:IMAQ_CLOSED_CURVE_FEATURE=closedCurve [GeometricPatternMatch2] arraysize=featureData:numFeatureData [ShapeDetectionOptions] arraysize=angleRanges:numAngleRanges [Curve] arraysize=points:numPoints [Barcode2DInfo] arraysize=data:dataLength [ClassifierAccuracyReport] arraysize=classNames:size,classAccuracy:size,classPredictiveValue:size #TODO: classificationDistribution:classPredictiveValue:size exclude_members=classificationDistribution [NearestNeighborTrainingReport] arraysize=allScores:allScoresSize #TODO: classDistancesTable exclude_members=classDistancesTable [ClassifierSampleInfo] arraysize=featureVector:featureVectorSize [ClassifierReport] arraysize=allScores:allScoresSize [MatchGeometricPatternOptions] arraysize=angleRanges:numAngleRanges [ConstructROIOptions2] arraysize=palette:numColors [BestEllipse2] arraysize=pointsUsed:numPointsUsed [BestCircle2] arraysize=pointsUsed:numPointsUsed [ReadTextOptions] arraysize=validChars:numValidChars [ReadTextReport] arraysize=characterReport:numCharacterReports [EdgeLocationReport] arraysize=edges:numEdges [ImageInfo] #TODO: imageStart exclude_members=reserved0,reserved1,imageStart [LCDReport] arraysize=segmentInfo:numCharacters exclude_members=reserved [LCDSegments] exclude_members=reserved [LearnColorPatternOptions] arraysize=colorsToIgnore:numColorsToIgnore [LinearAverages] arraysize=columnAverages:columnCount,rowAverages:rowCount,risingDiagAverages:risingDiagCount,fallingDiagAverages:fallingDiagCount [LineProfile] arraysize=profileData:dataCount [MatchColorPatternOptions] arraysize=angleRanges:numRanges [HistogramReport] arraysize=histogram:histogramCount [BestLine] arraysize=pointsUsed:numPointsUsed [CalibrationInfo] #TODO: errorMap:mapColumns*mapRows exclude_members=errorMap [CalibrationPoints] arraysize=pixelCoordinates:numCoordinates,realWorldCoordinates:numCoordinates [CaliperReport] exclude_members=reserved [ClosedContour] arraysize=points:numPoints [ColorInformation] arraysize=info:infoCount [ConcentricRakeReport] arraysize=rakeArcs:numArcs,firstEdges:numFirstEdges,lastEdges:numLastEdges,allEdges:numLinesWithEdges,linesWithEdges:numLinesWithEdges [ConstructROIOptions] arraysize=palette:numColors [ContourInfo] arraysize=points:numPoints [ContourInfo2] uniontype=structure:type:IMAQ_POINT=point:IMAQ_LINE=line:IMAQ_RECT=rect:IMAQ_OVAL=ovalBoundingBox:IMAQ_CLOSED_CONTOUR=closedContour:IMAQ_OPEN_CONTOUR=openContour:IMAQ_ANNULUS=annulus:IMAQ_ROTATED_RECT=rotatedRect [UserPointSymbol] #TODO: pixels:cols*rows exclude_members=pixels [MatchPatternOptions] arraysize=angleRanges:numRanges [OpenContour] arraysize=points:numPoints [QuantifyReport] arraysize=regions:regionCount [RakeReport] arraysize=rakeLines:numRakeLines,firstEdges:numFirstEdges,lastEdges:numLastEdges,allEdges:numLinesWithEdges,linesWithEdges:numLinesWithEdges [TransformReport] arraysize=points:numPoints,validPoints:numPoints [MeterArc] arraysize=arcCoordPoints:numOfArcCoordPoints [StructuringElement] #TODO: arraysize=kernel:matrixRows*matrixCols exclude_members=kernel [SpokeReport] arraysize=spokeLines:numSpokeLines,firstEdges:numFirstEdges,lastEdges:numLastEdges,allEdges:numLinesWithEdges,linesWithEdges:numLinesWithEdges [ToolWindowOptions] exclude_members=reserved2,reserved3,reserved4 [EventCallback] exclude=True ; Logical functions ; TODO: constant versions [imaqAndConstant] exclude=True [imaqCompareConstant] exclude=True [imaqLogicalDifferenceConstant] exclude=True [imaqNandConstant] exclude=True [imaqNorConstant] exclude=True [imaqOrConstant] exclude=True [imaqXnorConstant] exclude=True [imaqXorConstant] exclude=True ; Arithmetic functions ; TODO: constant versions [imaqAbsoluteDifferenceConstant] exclude=True [imaqAddConstant] exclude=True [imaqAverageConstant] exclude=True [imaqDivideConstant2] exclude=True [imaqMaxConstant2] exclude=True [imaqMinConstant] exclude=True [imaqModuloConstant] exclude=True [imaqMultiplyConstant] exclude=True [imaqSubtractConstant] exclude=True ; Particle Analysis functions [imaqCountParticles] outparams=numParticles [imaqMeasureParticle] outparams=value [imaqMeasureParticles] arraysize=measurements:numMeasurements [imaqParticleFilter4] arraysize=criteria:criteriaCount outparams=numParticles nullok=roi ; Morphology functions [imaqFindCircles] retarraysize=numCircles [imaqLabel2] outparams=particleCount [imaqMorphology] nullok=structuringElement [imaqSeparation] nullok=structuringElement [imaqSimpleDistance] nullok=structuringElement [imaqSizeFilter] nullok=structuringElement ; Acquisition functions [imaqCopyFromRing] nullok=image,imageNumber outparams=imageNumber retref=image [imaqExtractFromRing] nullok=imageNumber outparams=imageNumber retunowned=True [imaqGrab] nullok=image retref=image [imaqSetupRing] arraysize=images:numImages inparams=images [imaqSetupSequence] arraysize=images:numImages inparams=images [imaqSnap] nullok=image retref=image ; Caliper functions [imaqCaliperTool] retarraysize=numEdgePairs arraysize=points:numPoints [imaqDetectExtremes] retarraysize=numExtremes arraysize=pixels:numPixels [imaqFindTransformRect2] outparams=baseSystem,newSystem,axisReport [imaqFindTransformRects2] outparams=baseSystem,newSystem,axisReport [imaqSimpleEdge] retarraysize=numEdges arraysize=points:numPoints ; Spatial Filters functions [imaqCannyEdgeFilter] nullok=options [imaqConvolve2] inparams=kernel exclude=True [imaqEdgeFilter] nullok=mask [imaqLowPass] nullok=mask [imaqMedianFilter] nullok=mask [imaqNthOrderFilter] nullok=mask ; Drawing functions [imaqDrawTextOnImage] nullok=options,fontNameUsed ; Interlacing functions [imaqInterlaceSeparate] nullok=odd,even ; Image Information functions [imaqEnumerateCustomKeys] retarraysize=size [imaqGetImageSize] nullok=width,height [imaqGetPixelAddress] underscored=True exclude=True [imaqReadCustomData] retsize=size retunowned=True [imaqWriteCustomData] size=data:size ; Display functions [imaqGetLastKey] nullok=keyPressed,windowNumber,modifiers [imaqGetSystemWindowHandle] exclude=True [imaqGetWindowCenterPos] outparams=centerPosition ; Image Manipulation functions [imaqCast] nullok=lookup exclude=True [imaqFlatten] retsize=size [imaqRotate2] # TODO because of PixelValue exclude=True [imaqShift] # TODO because of PixelValue exclude=True [imaqUnflatten] size=data:size ; File I/O functions [imaqGetAVIInfo] outparams=info [imaqGetFileInfo] nullok=calibrationUnit,calibrationX,calibrationY,width,height,imageType [imaqGetFilterNames] retarraysize=numFilters [imaqLoadImagePopup] retarraysize=numPaths [imaqReadAVIFrame] size=data:dataSize # unclear whether dataSize is input or output parameter exclude=True [imaqReadFile] ;nullok=colorTable,numColors ;arraysize=colorTable:numColors [imaqWriteAVIFrame] size=data:dataLength [imaqWriteBMPFile] nullok=colorTable defaults=colorTable:null [imaqWriteFile] nullok=colorTable defaults=colorTable:null [imaqWriteJPEGFile] nullok=colorTable defaults=colorTable:null inparams=colorTable [imaqWritePNGFile2] nullok=colorTable defaults=colorTable:null [imaqWriteTIFFFile] nullok=options,colorTable defaults=options:null,colorTable:null ; Analytic Geometry functions [imaqBuildCoordinateSystem] outparams=system [imaqFitCircle2] arraysize=points:numPoints [imaqFitEllipse2] arraysize=points:numPoints [imaqFitLine] arraysize=points:numPoints [imaqGetBisectingLine] outparams=bisectStart,bisectEnd [imaqGetIntersection] outparams=intersection [imaqGetMidLine] outparams=midLineStart,midLineEnd [imaqGetPerpendicularLine] outparams=perpLineStart,perpLineEnd [imaqGetPointsOnContour] retarraysize=numSegments [imaqGetPointsOnLine] retarraysize=numPoints [imaqInterpolatePoints] retarraysize=interpCount arraysize=points:numPoints ; Clipboard functions [imaqClipboardToImage] nullok=palette [imaqImageToClipboard] nullok=palette ; Image Management functions [imaqCreateImage] defaults=borderSize:0 [imaqImageToArray] nullok=columns,rows underscored=True exclude=True ; Color Processing functions [imaqChangeColorSpace2] # TODO because of Color2 exclude=True [imaqColorBCGTransform] nullok=redOptions,greenOptions,blueOptions,mask [imaqColorHistogram2] nullok=mask [imaqColorLookup] nullok=mask,plane1,plane2,plane3 exclude=True [imaqColorThreshold] nullok=plane1Range,plane2Range,plane3Range ; Transform functions [imaqBCGTransform] nullok=mask [imaqEqualize] nullok=mask [imaqInverse] nullok=mask [imaqMathTransform] nullok=mask [imaqLookup2] nullok=mask exclude=True ; Window Management functions [imaqGetMousePos] nullok=position,windowNumber [imaqGetWindowBackground] outparams=backgroundColor [imaqGetWindowDisplayMapping] outparams=mapping [imaqGetWindowGrid] nullok=xResolution,yResolution [imaqGetWindowPos] outparams=position [imaqGetWindowSize] nullok=width,height [imaqSetWindowPalette] arraysize=palette:numColors nullok=palette ; Utilities functions ; Many Make* functions are faster in native Python [imaqGetKernel] exclude=True [imaqMakeAnnulus] exclude=True [imaqMakePoint] exclude=True [imaqMakePointFloat] exclude=True [imaqMakeRect] exclude=True [imaqMakeRectFromRotatedRect] exclude=True [imaqMakeRotatedRect] exclude=True [imaqMakeRotatedRectFromRect] exclude=True [imaqMulticoreOptions] underscored=True ; Tool Window functions [imaqGetLastEvent] nullok=windowNumber,tool,rect outparams=type,tool,rect [imaqGetToolWindowHandle] exclude=True [imaqGetToolWindowPos] outparams=position [imaqSetEventCallback] exclude=True [imaqSetupToolWindow] nullok=options ; Meter functions [imaqReadMeter] outparams=endOfNeedle ; Calibration functions [imaqCorrectCalibratedImage] # TODO because of PixelValue exclude=True [imaqTransformPixelToRealWorld] arraysize=pixelCoordinates:numCoordinates [imaqTransformRealWorldToPixel] arraysize=realWorldCoordinates:numCoordinates ; Pixel Manipulation functions [imaqArrayToComplexPlane] exclude=True [imaqComplexPlaneToArray] nullok=columns,rows underscored=True exclude=True [imaqExtractColorPlanes] nullok=plane1,plane2,plane3 [imaqFillImage] nullok=mask # TODO because of PixelValue exclude=True [imaqGetLine] nullok=numPoints underscored=True exclude=True [imaqGetPixel] outparams=value # TODO because of PixelValue exclude=True [imaqReplaceColorPlanes] nullok=plane1,plane2,plane3 [imaqSetLine] underscored=True exclude=True [imaqSetPixel] # TODO because of PixelValue exclude=True ; Color Matching functions [imaqLearnColor] nullok=roi [imaqMatchColor] retarraysize=numScores nullok=roi ; Barcode I/O functions [imaqGradeDataMatrixBarcodeAIM] outparams=report [imaqReadBarcode] nullok=roi [imaqReadPDF417Barcode] retarraysize=numBarcodes [imaqReadQRCode] defaults=reserved:IMAQ_QR_NO_GRADING ; LCD functions [imaqFindLCDSegments] nullok=options [imaqReadLCD] nullok=options ; Shape Matching functions [imaqMatchShape] retarraysize=numMatches ; Contours functions [imaqAddClosedContour] arraysize=points:numPoints [imaqAddOpenContour] arraysize=points:numPoints [imaqGetContourColor] outparams=contourColor ; Regions of Interest functions [imaqGetROIBoundingBox] outparams=boundingBox [imaqGetROIColor] outparams=roiColor [imaqSetWindowROI] nullok=roi ; Image Analysis functions [imaqExtractCurves] retarraysize=numCurves [imaqHistogram] nullok=mask [imaqQuantify] nullok=mask ; Error Management functions [imaqClearError] exclude=True [imaqGetErrorText] exclude=True [imaqGetLastError] exclude=True [imaqGetLastErrorFunc] exclude=True [imaqSetError] nullok=function exclude=True ; Threshold functions [imaqMultithreshold] arraysize=ranges:numRanges ; Memory Management functions [imaqDispose] # This is done as a full-custom function exclude=True ; Pattern Matching functions [imaqDetectCircles] retarraysize=numMatchesReturned [imaqDetectEllipses] retarraysize=numMatchesReturned [imaqDetectLines] retarraysize=numMatchesReturned [imaqDetectRectangles] retarraysize=numMatchesReturned [imaqGetGeometricFeaturesFromCurves] retarraysize=numFeatures arraysize=curves:numCurves,featureTypes:numFeatureTypes [imaqGetGeometricTemplateFeatureInfo] retarraysize=numFeatures [imaqLearnMultipleGeometricPatterns] arraysize=patterns:numberOfPatterns exclude=True [imaqMatchColorPattern] retarraysize=numMatches [imaqMatchGeometricPattern2] retarraysize=numMatches [imaqMatchMultipleGeometricPatterns] retarraysize=numMatches [imaqReadMultipleGeometricPatternFile] underscored=True [imaqRefineMatches] retarraysize=numCandidatesOut arraysize=candidatesIn:numCandidatesIn [imaqMatchGeometricPattern3] retarraysize=numMatches [imaqMatchPattern3] retarraysize=numMatches nullok=options ; Overlay functions [imaqGetOverlayProperties] outparams=transformBehaviors [imaqMergeOverlay] arraysize=palette:numColors [imaqOverlayBitmap] underscored=True [imaqOverlayClosedContour] arraysize=points:numPoints [imaqOverlayOpenContour] arraysize=points:numPoints [imaqOverlayPoints] arraysize=points:numPoints,colors:numColors ; OCR functions [imaqVerifyPatterns] arraysize=expectedPatterns:patternCount retarraysize=numScores [imaqVerifyText] retarraysize=numScores ; Geometric Matching functions [imaqContourClassifyCurvature] arraysize=curvatureClasses:numCurvatureClasses [imaqContourClassifyDistances] arraysize=distanceRanges:numDistanceRanges [imaqContourSetupMatchPattern] arraysize=rangeSettings:numRangeSettings [imaqContourAdvancedSetupMatchPattern] arraysize=geometricOptions:numGeometricOptions ; Morphology Reconstruction functions [imaqGrayMorphologyReconstruct] arraysize=points:numOfPoints [imaqMorphologyReconstruct] arraysize=points:numOfPoints ; Texture functions [imaqClassificationTextureDefectOptions] exclude=True [imaqCooccurrenceMatrix] exclude=True [imaqExtractTextureFeatures] inparams=waveletBands exclude=True [imaqExtractWaveletBands] inparams=waveletBands exclude=True ; Regions of Interest Manipulation functions [imaqMaskToROI] nullok=withinLimit [imaqROIToMask] nullok=imageModel,inSpace [imaqLabelToROI] arraysize=labelsIn:numLabelsIn ; Morphology functions [imaqGrayMorphology] nullok=structuringElement ; Classification functions [imaqAddClassifierSample] arraysize=featureVector:vectorSize [imaqAdvanceClassify] arraysize=featureVector:vectorSize [imaqClassify] arraysize=featureVector:vectorSize [imaqGetColorClassifierOptions] outparams=options [imaqGetNearestNeighborOptions] outparams=options ;[imaqReadClassifierFile] ;[imaqWriteClassifierFile] ; Obsolete functions [imaqWritePNGFile] nullok=colorTable defaults=colorTable:null [imaqRotate] # TODO because of PixelValue exclude=True [imaqSelectParticles] retarraysize=selectedCount [imaqGetParticleInfo] retarraysize=reportCount [imaqEdgeTool] retarraysize=numEdges [imaqCircles] retarraysize=numCircles [imaqFitEllipse] arraysize=points:numPoints outparams=ellipse [imaqFitCircle] arraysize=points:numPoints outparams=circle [imaqChangeColorSpace] # TODO because of Color exclude=True [imaqMatchPattern] retarraysize=numMatches nullok=options [imaqLineGaugeTool] nullok=reference [imaqBestCircle] arraysize=points:numPoints outparams=center [imaqCoordinateReference] outparams=origin [imaqSetWindowOverlay] nullok=overlay [imaqGetCalibrationInfo] outparams=unit,xDistance,yDistance nullok=unit,xDistance,yDistance [imaqGetParticleClassifierOptions] outparams=preprocessingOptions,options [imaqConvolve] nullok=mask inparams=kernel exclude=True [imaqDivideConstant] # TODO because of PixelValue exclude=True [imaqLookup] nullok=mask exclude=True [imaqMatchPattern2] retarraysize=numMatches nullok=options [imaqMaxConstant] # TODO because of PixelValue exclude=True [imaqParticleFilter2] arraysize=criteria:criteriaCount [imaqEdgeTool2] retarraysize=numEdges [imaqReadDataMatrixBarcode] retarraysize=numBarcodes [imaqMatchGeometricPattern] retarraysize=numMatches [imaqColorHistogram] nullok=mask [Priv_ReadJPEGString_C] arraysize=string:stringLength inparams=image,string ; block comment exclusion list [Block Comment] exclude= Includes Control Defines Macros This accomplishes said task. If using Visual C++, force startup & shutdown code to run. Error Management functions Callback Function Type Backwards Compatibility Error Codes