Intel®Image ProcessingLibraryReference ManualCopyright © 1997-2000, Intel CorporationAll Rights ReservedIssued in U.S.A.Document Number 663791-005
Intel®ImageProcessingLibraryReferenceManualviiiConvolve2D...6-8Convolve2DFP...
Intel®Image Processing Library Reference Manual4-464iplConvertFromDIB(),iplConvertFromDIBSep()Provides more control of the conversion and canconvert a
Image Creation and Access4-474TranslateDIBTranslates a DIB imageinto the correspondingIplImage.iplImage* iplTranslateDIB(BITMAPINFOHEADER*dib,BOOL*clo
Intel®Image Processing Library Reference Manual4-484Example 4-8 Translating a DIB Image Into an IplImageint example47( void ) {#define WIDTH 8#define
Image Creation and Access4-494Example 4-8 Translating a DIB Image Into an IplImage (continued)// fill in colors of the bitmapfor( i=0; i<256; i++)r
Intel®Image Processing Library Reference Manual4-504Return ValueThe constructed IplImage.Ifnomemoryisavailableinthesystemtoallocate theIplImage header
Image Creation and Access4-514• The dimensions of the converted IplImage should be greater than orequal to that of the DIB image. When the converted i
Intel®Image Processing Library Reference Manual4-524Example 4-9 Converting a DIB Image Into an IplImage (continued)dibh->biCompression = BI_RGB;dib
Image Creation and Access4-534ConvertFromDIBSepConverts a DIB image to anIplImage, using two argumentsfor the DIB header and data.IPLStatus iplConvert
Intel®Image Processing Library Reference Manual4-544ConvertToDIBConverts anIplImageto a DIB image withspecified attributes.void iplConvertToDIB(iplIma
Image Creation and Access4-554IPL_PALCONV_POPULATE The popularity paletteconversion algorithm is used.IPL_PALCONV_MEDCUT The median cut algorithm forp
ContentsixConversion of Absolute Colors to and from Palette Colors. 9-7Conversion from Color to Gray Scale... 9-8ColorTo
Intel®Image Processing Library Reference Manual4-564dibDataThe output DIB image data.ditherThe dithering algorithm to use if applicable.Dithering will
Image Arithmetic and LogicalOperations5-15This chapter describes image processing functions that modify pixel valuesusing simple arithmetic or logical
Intel®Image Processing Library Reference Manual5-25Table 5-1 Image Arithmetic and Logical Operations (continued)Group Function Name DescriptionArithme
Image Arithmetic and Logical Operations5-35Monadic Arithmetic OperationsThe sections that follow describe the library functions that performmonadic ar
Intel®Image Processing Library Reference Manual5-45SubtractS, SubtractSFPSubtracts a constant frompixel values, or pixelvalues from a constant.void ip
Image Arithmetic and Logical Operations5-55dstImageThe resultant image.valueAn integer value by which to multiply the pixel values.DiscussionThe funct
Intel®Image Processing Library Reference Manual5-65SquareSquares the pixel valuesof the image.void iplSquare(IplImage*srcImage, IplImage*dstImage);src
Image Arithmetic and Logical Operations5-75Dyadic Arithmetic OperationsThe sections that follow describe the functions that perform dyadicarithmetic o
Intel®Image Processing Library Reference Manual5-85SubtractCombines correspondingpixels of two images bysubtraction.void iplSubtract(IplImage*srcImage
Image Arithmetic and Logical Operations5-95DiscussionThe function iplMultiply() multiplies corresponding pixels of two inputimages to produce the outp
Intel®Image Processing Library Reference ManualxLookup Table (LUT) and Histogram Operations... 10-5The IplLUT Structure ...
Intel®Image Processing Library Reference Manual5-105Monadic Logical OperationsThe sections that follow describe the functions that perform monadiclogi
Image Arithmetic and Logical Operations5-115RShiftSDivides pixel values by aconstant power of 2 byshifting bits to the right.void iplRShiftS(IplImage*
Intel®Image Processing Library Reference Manual5-125NotPerforms a bitwise NOToperation on each pixel.void iplNot(IplImage*srcImage, IplImage*dstImage)
Image Arithmetic and Logical Operations5-135OrSPerforms a bitwise ORoperation of each pixelwith a constant.void iplOrS(IplImage*srcImage, IplImage*dst
Intel®Image Processing Library Reference Manual5-145XorSPerforms a bitwise XORoperation of each pixelwith a constant.void iplXorS(IplImage*srcImage, I
Image Arithmetic and Logical Operations5-155AndCombines corresponding pixelsof two images by a bitwise ANDoperation.void iplAnd(IplImage*srcImageA, Ip
Intel®Image Processing Library Reference Manual5-165DiscussionThe function iplOR() performs a bitwise OR operation between the valuesof corresponding
Image Arithmetic and Logical Operations5-175Using the opacity channel for image compositing provides the capability ofoverlaying the arbitrarily shape
Intel®Image Processing Library Reference Manual5-185Using Pre-multiplied Alpha ValuesIn many cases it is computationally more efficient to store the c
Image Arithmetic and Logical Operations5-195void iplAlphaCompositeC(IplImage*srcImageA, IplImage*srcImageB, IplImage*dstImage, intcompositeType, intaA
ContentsxiRotateCenter... 11-13Mirror...
Intel®Image Processing Library Reference Manual5-205IfsrcImageBdoes not contain an alpha channel, thenthe value (1-[αA)isusedforthealpha,whereαAis asc
Image Arithmetic and Logical Operations5-215• IfalphaImageAandalphaImageBare both NULL, then the internalalpha channels of the two input images specif
Intel®Image Processing Library Reference Manual5-225Table 5-2 Types of Image Compositing OperationsType Output Pixel(see Note)Output Pixel(pre-mult. α
Image Arithmetic and Logical Operations5-235The above operation is done for each color channel in A, B, and C. When theimages A and B contain pre-mult
Intel®Image Processing Library Reference Manual5-245PreMultiplyAlphaPre-multiplies alphavalues of an image.void iplPreMultiplyAlpha (IplImage*image,in
Image Filtering6-16This chapter describes linear and non-linear filtering operations supportedby the Image Processing Library. Most linear filtering i
Intel®Image Processing Library Reference Manual6-26Linear FiltersLinear filtering includes a simple neighborhood averaging filter, 2Dconvolution opera
Image Filtering6-362D ConvolutionThe 2D convolution is a versatile image processing primitive which can beused in a variety of image processing operat
Intel®Image Processing Library Reference Manual6-46In addition, iplConvolveSep2D(), a convolution function that usesseparable kernels, is also provide
Image Filtering6-56CreateConvKernel, CreateConvKernelChar,CreateConvKernelFPCreates a convolutionkernel.IplConvKernel* iplCreateConvKernel(intnCols, i
Intel®Image Processing Library Reference ManualxiiNormalizedSpatialMoment...12-10NormalizedCentralMoment...
Intel®Image Processing Library Reference Manual6-66nShiftRScale the resulting output pixel by shifting it tothe rightnShiftRtimes.DiscussionFunctions
Image Filtering6-76nCols, nRowsNumbers of columns and rows in the convolutionkernel. Set by the function.anchorX, anchorYPointers to the [x, y] coordi
Intel®Image Processing Library Reference Manual6-86DeleteConvKernelDeleteConvKernelFPDeletes a convolutionkernel.void iplDeleteConvKernel(IplConvKerne
Image Filtering6-96nKernelsThe number of kernels in the arraykernel.Thevalue ofnKernelscan be 1 or more.combineMethodThe way in which the results of a
Intel®Image Processing Library Reference Manual6-106Example 6-1 Computing 2-dimensional Convolution (continued)if( NULL == imga ) return 0;iplSetBorde
Image Filtering6-116ConvolveSep2D, ConvolveSep2DFPConvolves an image with aseparable convolution kernel.void iplConvolveSep2D (IplImage*srcImage,IplIm
Intel®Image Processing Library Reference Manual6-126FixedFilterConvolves an image with apredefined kernel.int iplFixedFilter(IplImage*srcImage,IplImag
Image Filtering6-136IPL_SOBEL_3x3_H A gradient filter (horizontal Sobel operator).This filter uses the kernel121000-1 -2 -1IPL_LAPLACIAN_3x3A3x3 Lapla
Intel®Image Processing Library Reference Manual6-146These filter coefficients correspond to a 2-dimensional Gaussiandistribution with standard deviati
Image Filtering6-156MedianFilterApply a median filter tothe image.void iplMedianFilter(IplImage*srcImage, IplImage*dstImage, intnCols, intnRows, intan
ContentsxiiiTablesTable 2-1 Data Ordering ... 2-3Table 3-1 iplError() Status Codes...
Intel®Image Processing Library Reference Manual6-166Example 6-2 Applying the Median Filterint example62( void ) {IplImage *imga, *imgb;__try {imga = i
Image Filtering6-176ColorMedianFilterApply a color medianfilter to the image.void iplColorMedianFilter(IplImage*srcImage, IplImage*dstImage, intnCols,
ImageFiltering6-186MaxFilterApplyamaxfiltertotheimage.voidiplMaxFilter(IplImage*srcImage, IplImage*dstImage,intnCols, intnRows, intanchorX, intanchorY
Intel®ImageProcessingLibraryReferenceManual6-196MinFilterApplyaminfiltertotheimage.voidiplMinFilter(IplImage*srcImage, IplImage*dstImage,intnCols, int
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Linear Image Transforms7-17This chapter describes the linear image transforms implemented in thelibrary: Fast Fourier Transform (FFT) and Discrete Cos
Intel®Image Processing Library Reference Manual7-27The function iplRealFft2D() transforms a 2D image and produces theFourier coefficients in theRCPack
Linear Image Transforms7-37Table 7-2 FFT Output in RCPack2D Format for EvenKRe A0,0Re A0,1Im A0,1...Re A0,(L-1)/2Im A0,(L-1)/2Re A0,L/2Re A1,0Re A1,1I
Intel®Image Processing Library Reference Manual7-47RealFft2DComputes the forward orinverse 2D FFT of an image.void iplRealFft2D(IplImage*srcImage, Ipl
Linear Image Transforms7-57DiscussionThe function iplRealFft2D() performs an FFT on each channel in thespecified rectangular ROI of the input imagesrc
Intel®Image Processing Library Reference ManualxivTable A-4 Image Attributes and Modes ofAlpha-Blending Functions ...
Intel®Image Processing Library Reference Manual7-67Example 7-1 Computing the FFT of an Image (continued)if( NULL == imga ) return 0;imgb = iplCreateIm
Linear Image Transforms7-77CcsFft2DComputes the forwardor inverse 2D FFT of animage in complex-conjugate format.void iplCcsFft2D(IplImage*srcImage, Ip
Intel®Image Processing Library Reference Manual7-87MpyRCPack2DMultiplies data of twoimages in the RCPackformat.void iplMpyRCPack2D (IplImage*srcA, Ipl
Linear Image Transforms7-97DCT2DComputes the forwardor inverse 2D DCT of animage.void iplDCT2D(IplImage*srcImage, IplImage*dstImage,intflags);srcImage
Intel®Image Processing Library Reference Manual7-107DiscussionThe function iplDCT2D() performs a DCT on each channel in thespecified rectangular ROI o
Linear Image Transforms7-117Example 7-2 Computing the DCT of an Image (continued)// Create without fillingiplAllocateImage( imga, 0,0 );if( NULL == im
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Morphological Operations8-18The morphological operations of the Image Processing Library are simpleerosion and dilation of an image. A specified numbe
Intel®Image Processing Library Reference Manual8-28ErodeErodes the image.void iplErode(IplImage*srcImage, IplImage*dstImage,intnIterations);srcImageTh
Morphological Operations8-38Figure 8-1 shows an example of 8-bit gray scale image before erosion (left)and the same image after erosion of a rectangul
ContentsxvExamplesExample 3-1 Error Functions ... 3-13Example 3-2 Output for the Error Function Program(IPL_
Intel®Image Processing Library Reference Manual8-48Example 8-1 Code Used to Produce Erosion in a Rectangular ROIint example81( void ) { IplImage *imga
Morphological Operations8-58NOTE. All source image attributes are defined in the image headerpointed to bysrcImage.DilateDilates the image.void iplDil
Intel®Image Processing Library Reference Manual8-68OpenOpens the image byperforming erosionsfollowed by dilations.void iplOpen(IplImage*srcImage, IplI
Morphological Operations8-78CloseCloses the image byperforming dilationsfollowed by erosions.void iplClose(IplImage*srcImage, IplImage*dstImage,intnIt
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Color Space Conversion9-19This chapter describes the Image Processing Library functions that performcolor space conversion. The library supports the f
Intel®Image Processing Library Reference Manual9-29Table 9-1 Color Space Conversion Functions (continued)Conversion Type Function Name DescriptionColo
Color Space Conversion9-39Reducing the Image Bit ResolutionThis section describes functions that reduce the bit resolution of absolutecolor and gray s
Intel®Image Processing Library Reference Manual9-49IPL_DITHER_BAYER The Bayer thresholddithering algorithm.levelsThe number of output levels for halft
Color Space Conversion9-59The figure below illustrates the results of applying the iplReduceBits()function with Stucki dithering to a source image tha
Intel®Image Processing Library Reference ManualxviExample 11-2 Rotating an Image... 11-11Example 11-3 Using Macro
Intel®Image Processing Library Reference Manual9-69Table 9-2 lists the valid combinations of the source and resultant image bitdata types for reducing
Color Space Conversion9-79Conversion from Bitonal to Gray Scale ImagesThis section describes the function that performs the conversion of bitonalimage
Intel®Image Processing Library Reference Manual9-89Conversion from Color to Gray ScaleThis section describes the function that performs the conversion
Color Space Conversion9-99The weights to compute true luminance from linear red, green and blue arethese:Y = 0.212671 * R + 0.715160 * G + 0.072169 *
Intel®Image Processing Library Reference Manual9-109Table 9-4 Source and Resultant Image Data Types for Conversion from GrayScale to ColorSource Image
Color Space Conversion9-119This call converts the RGB imagergbImageto the CMY imagecmyImageby setting each channel in the CMY image as follows:C=255-R
Intel®Image Processing Library Reference Manual9-129RGB2HSVConverts RGB imagesto the HSV color model.void iplRGB2HSV(IplImage*rgbImage, IplImage*hsvIm
Color Space Conversion9-139RGB2HLSConverts RGB imagesto the HLS color model.void iplRGB2HLS(IplImage*rgbImage, IplImage*hlsImage);rgbImageThesourceRGB
Intel®Image Processing Library Reference Manual9-149RGB2LUVConverts RGB imagesto the LUV color model.void iplRGB2LUV(IplImage*rgbImage, IplImage*luvIm
Color Space Conversion9-159RGB2XYZConverts RGB imagesto the XYZ color model.void iplRGB2XYZ(IplImage*rgbImage, IplImage*xyzImage);rgbImageThesourceRGB
Overview1-11This manual describes the structure, operation and functions of theIntelImage Processing Library. This library supports many functionswho
Intel®Image Processing Library Reference Manual9-169RGB2YCrCbConverts RGB images tothe YCrCb color model.void iplRGB2YCrCb(IplImage*rgbImage, IplImage
Color Space Conversion9-179RGB2YUVConverts RGB imagesto the YUV color model.void iplRGB2YUV(IplImage*rgbImage, IplImage*yuvImage);rgbImageThesourceRGB
Intel®Image Processing Library Reference Manual9-189YCC2RGBConverts HLS images tothe RGB color model.void iplYCC2RGB(IplImage*YCCImage, IplImage*rgbIm
Color Space Conversion9-199CreateColorTwistCreates a color-twistmatrix data structure.IplColorTwist* iplCreateColorTwist(intdata[16],intscalingValue);
Intel®Image Processing Library Reference Manual9-209SetColorTwistSets a color-twist matrixdata structure.void iplSetColorTwist(IplColorTwist*cTwist, i
Color Space Conversion9-219ApplyColorTwistApplies a color-twistmatrix to an image.void iplApplyColorTwist(IplImage*srcImage,IplImage*dstImage, IplColo
Intel®Image Processing Library Reference Manual9-229• Lightening an image• Color saturation• Color balance• R, G, and B color adjustments• Contrast ad
Color Space Conversion9-239ColorTwistFPApplies a color-twistmatrix to an image withfloating-point pixel values.IPLStatus iplColorTwistFP (const IplIma
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Histogram, Threshold, and CompareFunctions10-110This chapter describes functions that operate on an image on a pixel-by-pixel basis: compare, threshol
How to Use This Online ManualPrinting an Online File. Select Print from the File menu to print an online file. The dialog that opensallows you to prin
Intel®ImageProcessingLibraryReferenceManual1-21AboutThisManualThismanualprovidesabackgroundoftheimageandexecutionarchitectureoftheImageProcessingLibra
Intel®Image Processing Library Reference Manual10-210Table 10-1 Compare, Threshold, and Histogram Functions (continued)Group Function Name Description
Histogram, Threshold, and Compare Functions10-310thresholdThe threshold value to use for each pixel. Thepixel value in the output is set to the maximu
Intel®Image Processing Library Reference Manual10-410Example 10-1 Conversion to a Bitonal Imageint example101( void ) {IplImage *imga, *imgb;const int
Histogram, Threshold, and Compare Functions10-510Lookup Table (LUT) and Histogram OperationsA LUT can be used to specify an intensity transformation.
Intel®Image Processing Library Reference Manual10-610IfinterpolateTypeis LOOKUP, then any input intensity D in the rangek0 ≤ D<k1will result in the
Histogram, Threshold, and Compare Functions10-710ConstrastStretchStretches the contrast ofan image using anintensity transformation.void iplContrastSt
Intel®Image Processing Library Reference Manual10-810Example 10-2 Using the Function iplContrastStretch() to Enhance an Image(continued)/// allocate L
Histogram, Threshold, and Compare Functions10-910ComputeHistoComputes the intensityhistogram of an image.void iplComputeHisto(IplImage*srcImage, IplLU
Intel®Image Processing Library Reference Manual10-1010HistoEqualizeEnhances an image byflattening its intensityhistogram.void iplHistoEqualize(IplImag
Histogram, Threshold, and Compare Functions10-1110Example 10-3 Computing and Equalizing the Image Histogramint example102( void ) {IplImage *imga;cons
Overview1-31Chapter 6 “Image Filtering.” Describes linear and non-linear filtering operations that can be applied toimages.Chapter 7 “Linear Image Tra
Intel®Image Processing Library Reference Manual10-1210Comparing ImagesThis section describes the functions that allow you to compare images.Each compa
Histogram, Threshold, and Compare Functions10-1310GreaterTests if the pixel values of thefirst image are greater thanthose of the second image.IPLStat
Intel®Image Processing Library Reference Manual10-1410LessTests if the pixel values of thefirst image are less than those ofthe second image.IPLStatus
Histogram, Threshold, and Compare Functions10-1510EqualTests if the pixel values of thefirst image are equal to those ofthe second image.IPLStatus ipl
Intel®Image Processing Library Reference Manual10-1610EqualFPEpsTests if the floating-point pixelvalues in two images are equalwithin a tolerance ε.IP
Histogram, Threshold, and Compare Functions10-1710GreaterSTests if the image’s pixel valuesare greater than an integerscalar value.IPLStatus iplGreate
Intel®Image Processing Library Reference Manual10-1810GreaterSFPTests if the image’s pixel valuesare greater than a floating-pointscalar value.IPLStat
Histogram, Threshold, and Compare Functions10-1910LessSTests if the image’s pixel valuesare less than an integer scalarvalue.IPLStatus iplLessS (IplIm
Intel®Image Processing Library Reference Manual10-2010LessSFPTests if the image’s pixel valuesare less than a floating-pointscalar value.IPLStatus ipl
Histogram, Threshold, and Compare Functions10-2110EqualSTests if the image’s pixel valuesare equal to an integer scalarvalue.IPLStatus iplEqualS (IplI
Intel®Image Processing Library Reference Manual1-41The manual also includes a Glossary, Bibliography,andIndex,aswellastwo appendixes that list support
Intel®Image Processing Library Reference Manual10-2210EqualSFPTests if the image’s pixel valuesare equal to a floating-pointscalar value.IPLStatus ipl
Histogram, Threshold, and Compare Functions10-2310EqualSFPEpsTests if the pixel values areequal to a floating-point scalarvalue within a tolerance ε.I
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Geometric Transforms11-111This chapter describes the functions that perform geometric transformsto resize the image, change the image orientation, or
Intel®Image Processing Library Reference Manual11-211Table 11-1 Image Geometric Transform Functions (continued)Group Function Name DescriptionWarping(
Geometric Transforms11-311Internally, all geometric transformation functions handle regions of interest(ROIs) with the following sequence of operation
Intel®Image Processing Library Reference Manual11-411ZoomZooms or expands animage.void iplZoom(IplImage*srcImage, IplImage*dstImage, intxDst, intxSrc,
Geometric Transforms11-511DecimateDecimates or shrinks animage.void iplDecimate(IplImage*srcImage, IplImage*dstImage,intxDst, intxSrc, intyDst, intySr
Intel®Image Processing Library Reference Manual11-611DecimateBlurBlurs and decimates animage.void iplDecimateBlur (IplImage*srcImage,IplImage*dstImage
Geometric Transforms11-711ResizeResizes an image.void iplResize(IplImage*srcImage, IplImage*dstImage, intxDst, intxSrc, intyDst, intySrc, intinterpola
Overview1-51OnlineVersionThismanualisavailableinanonlinehypertextformat.Toobtainahardcopyofthemanual,printtheonlinefileusingtheprintingcapabilityofAdo
Intel®Image Processing Library Reference Manual11-811iplZoomFitiplDecimateFitiplResizeFitMacro definitions that changethe image size using the images’
Geometric Transforms11-911Example 11-1 Using Macro Definition to Resize an Imageint ResizeFit( void ) {IplImage *imga = iplCreateImageJaehne(IPL_DEPTH
Intel®Image Processing Library Reference Manual11-1011dstImageThe resultant image.angleThe angle (in degrees) to rotate the image.The image is rotated
Geometric Transforms11-1111GetRotateShiftComputes shifts for iplRotate, giventhe rotation center and angle.void iplGetRotateShift(doublexCenter, doubl
Intel®Image Processing Library Reference Manual11-1211Example 11-2 Rotating an Image (continued)double xshift=0, yshift=0;imga = iplCreateImageHeader(
GeometricTransforms11-1311iplRotateCenterThisfunction-likemacroallowstorotateanimagearoundthegivencenter.iplRotateCenter(srcImage, dstImage, angle, xC
Intel®Image Processing Library Reference Manual11-1411Example 11-3 Using Macro Definition to Rotate an Imageint RotateCenter( void ) {IplImage *imga =
Geometric Transforms11-1511WarpingThis section describes shearing and warping functions of the ImageProcessing Library. These functions have been adde
Intel®Image Processing Library Reference Manual11-1611ShearPerforms a shear ofthe source image.void iplShear(IplImage*srcImage, IplImage*dstImage, dou
Geometric Transforms11-1711WarpAffineWarps an image by an affine transform.void iplWarpAffine(IplImage*srcImage, IplImage*dstImage,const doublecoeffs[
Intel®Image Processing Library Reference Manual1-61Naming ConventionsThe following data type conventions are used by the library:• Constant identifier
Intel®Image Processing Library Reference Manual11-1811GetAffineBoundComputes the boundingrectangle for ROI transformedby iplWarpAffine.void iplGetAffi
Geometric Transforms11-1911quadOutput array: coordinates of the quadrangle towhich theimage’s ROI would be mapped byiplWarpAffine().DiscussionThe func
Intel®Image Processing Library Reference Manual11-2011WarpBilinearWarpBilinearQWarps an image by abilinear transform.void iplWarpBilinear(IplImage*src
Geometric Transforms11-2111DiscussionThe functions iplWarpBilinear() and iplWarpBilinearQ() warp thesource image by a bilinear transformation accordin
Intel®Image Processing Library Reference Manual11-2211GetBilinearBoundComputes the boundingrectangle for ROI transformedby iplWarpBilinear.void iplGet
Geometric Transforms11-2311quadOutput array: coordinates of the quadrangle towhich theimage’s ROI would be mapped byiplWarpBilinear().DiscussionThe fu
Intel®Image Processing Library Reference Manual11-2411WarpPerspectiveWarpPerspectiveQWarps an image by aperspective transform.void iplWarpPerspective(
Geometric Transforms11-2511DiscussionThe functions iplWarpPerspective() and iplWarpPerspectiveQ()warp the source image by a perspective transformation
Intel®Image Processing Library Reference Manual11-2611GetPerspectiveBoundComputes the boundingrectangle for ROI transformedby iplWarpPerspective.void
Geometric Transforms11-2711quadOutput array: coordinates of the quadrangle towhich theimage’s ROI would be mapped byiplWarpPerspective().DiscussionThe
Overview1-71targetonly; for example, the functionsMultiply or RealFft2D, respectively.modThemodfield is optional and indicates amodification to the co
Intel®Image Processing Library Reference Manual11-2811Arbitrary TransformsTo perform special geometric transforms not covered in the above sections,th
Geometric Transforms11-2911DiscussionThe function iplRemap() maps the imagesrcImagetodstImageusing acoordinate table supplied by the application in th
Intel®Image Processing Library Reference Manual11-3011Example 11-4 Re-mapping an Image (continued)/// allocate memory destination with zero dataiplAll
Image Statistics Functions12-112This chapter describes the Image Processing Library functions that allowyou to compute the following statistical param
Intel®Image Processing Library Reference Manual12-212Image NormsThe iplNorm() function described in this section allows you to computethe following no
Image Statistics Functions12-312(1) the norm ofsrcImageApixel values,||a||(2) the norm of differences of the source images’ pixel values,||a - b||(3)t
Intel®Image Processing Library Reference Manual12-412Example 12-1 Computing the Norm of Pixel Valuesint example51( void ) {IplImage *imga, *imgb;const
Image Statistics Functions12-512Image MomentsSpatial and central moments are important statistical characteristics of animage. The spatial moment MU(m
Intel®Image Processing Library Reference Manual12-612MomentsComputes all imagemoments of order 0 to 3.void iplMoments(IplImage*image, IplMomentStatemS
Image Statistics Functions12-712DiscussionThe function iplGetSpatialMoment() returns the spatial momentMU(m,n) previously computed by the iplMoments()
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Intel®Image Processing Library Reference Manual12-812mStateThe structure storing the image moments.mOrd, nOrdThe integer exponents m and n (see the mo
Image Statistics Functions12-912SpatialMomentComputes a spatialmoment.double iplSpatialMoment(IplImage*image, intmOrd, intnOrd);imageThe image for whi
Intel®Image Processing Library Reference Manual12-1012DiscussionThe function iplCentralMoment() computes the central moment UU(m,n)for theimage.Normal
Image Statistics Functions12-1112NormalizedCentralMomentComputes a normalizedcentral moment.double iplNormalizedCentralMoment(IplImage*image, intmOrd,
Intel®Image Processing Library Reference Manual12-1212Cross-CorrelationThis section describes the iplNormCrossCorr() function that allows youto comput
Image Statistics Functions12-1312NormCrossCorrComputes normalized cross-correlationbetween an image and a template.IPLStatus iplNormCrossCorr (IplImag
Intel®ImageProcessingLibraryReferenceManual12-1412MinimumandMaximumTheiplMinMaxFP()functiondescribedinthissectionallowsyoutocomputetheminimumandmaximu
User Defined Functions13-113This chapter describes library functions that enable users to create theirown image processing functions and make calls to
Intel®Image Processing Library Reference Manual13-213UserFuncThe type of user-definedfunctions that perform pointoperations on a separatechannel value
User Defined Functions13-313UserFuncFPThe type of user-definedfunctions that perform pointoperations on a separatechannel value of a pixel (forimages
Image Architecture2-12This chapter describes the data and execution architecture of the ImageProcessing Library. It introduces the library’s color mod
Intel®Image Processing Library Reference Manual13-413UserFuncPixelThe type of user-definedfunctions that perform pointoperations simultaneously onall
User Defined Functions13-513If saturation of the computed result is necessary, it must be provided withinthe user function.The user function of type I
Intel®Image Processing Library Reference Manual13-613data. To perform saturation of 32-bit integer data, useiplUserProcessFP() function instead.The fu
User Defined Functions13-713UserProcessFPCalls user-defined functionto separately process eachchannel value of pixels inimages with all data types.voi
Intel®Image Processing Library Reference Manual13-813UserProcessPixelCalls user-defined function tosimultaneously process channelvalues of pixels in a
User Defined Functions13-913Example 13-2 Pixel Values Processing by User Defined Functionstatic void __STDCALL rgb2gray( IplImage* srcImage,void* srcP
This page is left blank for double-sided printingThis page is left blank for double-sided printing
LibraryVersion14-114ThischapterdescribesthefunctioniplGetLibVersion()thatreturnstheversionnumberandotherinformationabouttheImageProcessingLibrary.GetL
Intel®ImageProcessingLibraryReferenceManual14-214TheIPLLibVersionstructureisdefinedasfollows:typedefstruct_IPLLibVersion{int major; /*e.g.2 */int
Supported Image Attributesand Operation ModesA-1AThis appendix contains tables that list the supported image attributes andoperation modes for functio
Intel®Image Processing Library Reference Manual2-22The multi-spectral image (MSI) model is used for general purpose images.It is used for any kind of
Intel®Image Processing Library Reference ManualA-2ATable A-2 Windows DIB Conversion FunctionsFunction Depths Input and output images have the sameinpu
Supported Image Attributes and Operation ModesA-3ATable A-3 Image Attributes and Modes of Arithmetic and Logical FunctionsInput and output images Rect
Intel®Image Processing Library Reference ManualA-4ATable A-4 Image Attributes and Modes of Alpha-Blending FunctionsInput and output images Rect. In-pl
Supported Image Attributes and Operation ModesA-5ATable A-7 Image Attributes and Modes of Morphological OperationsInput and output images Rect. Border
Intel®Image Processing Library Reference ManualA-6ATable A-9 Image Attributes and Modes of Histogram and Thresholding FunctionsInput and output images
SupportedImageAttributesandOperationModesA-7ATableA-11 ImageAttributesandModesofImageStatiscticsFunctionsAllimages Rect. Tiling MaskFunction Dept
This page is left blank for double-sided printingThis page is left blank for double-sided printing
Interpolation inGeometric Transform FunctionsB-1BThis appendix describes the interpolation algorithms used in the geometrictransformation functions of
Intel®ImageProcessingLibraryReferenceManualB-2BTableB-1liststhesupportedinterpolationmodesforallgeometrictransformfunctions.Forcertainfunctions,youcan
Interpolation in Geometric Transformation FunctionsB-3BMathematical NotationIn this appendix we’ll use the following notation:(xD,yD) pixel coordinate
Image Architecture2-32The Sequence and Order of Color ChannelsChannel sequence corresponds to the order of the color channels inabsolute color images.
Intel®Image Processing Library Reference ManualB-4BThen, the sought-for intensity D(xD,yD) is computed by interpolating theintermediate values I0and I
Interpolation in Geometric Transformation FunctionsB-5BCubic InterpolationThe cubic interpolation algorithm (see Figure B-2) uses source imageintensit
Intel®Image Processing Library Reference ManualB-6BFigure B-2 Cubic InterpolationxyyS3D(xS,yS)yS2yS1yS0xS3xS1xS0xS2F0(x)F1(x)F2(x)F3(x)xSySintensitySu
Interpolation in Geometric Transformation FunctionsB-7BFor each source pixel intersecting with the rectangle, Figure B-3 shows thecorresponding weight
This page is left blank for double-sided printingThis page is left blank for double-sided printing
BibliographyBiblio-1This bibliography provides a list of publications that might be useful to theImage Processing Library users. This list is not comp
Intel®Image Processing Library Reference ManualBiblio-2[RPL] Intel®Recognition Primitives Library Reference Manual.Intel Corp. Order number 637785.[SP
GlossaryGlossary-1absolute colors Colors specified by each pixel’s coordinates in acolor space. Intel Image Processing Libraryfunctions use images wit
Intel®Image Processing Library Reference ManualGlossary-2DIB Device-independent bitmap, an image formatused by the library in Windows environment.dila
GlossaryGlossary-3in-place operation An operation whose output image is one of theinput images. See out-of-place operation.linear filtering In this li
Intel®Image Processing LibraryReference ManualDocument Number: 663791-005World Wide Web: http://developer.intel.comRevision Revision History Date-001
Intel®Image Processing Library Reference Manual2-42Coordinate SystemsTwo coordinate systems are supported by the library’s image format.• The origin o
Intel®Image Processing Library Reference ManualGlossary-4palette colors Colors specified by a palette, or lookup table.The Image Processing Library us
GlossaryGlossary-5XYZ A three-channel color model designed torepresent a wider range of colors than the RGBmodel: some XYZ-representable colors wouldh
This page is left blank for double-sided printingThis page is left blank for double-sided printing
IndexIndex-1Aa function that helps youadd a constant to pixel values, 5-3add pixel values of two images, 5-7allocate a quadword-aligned memory block,4
Intel®Image Processing Library Reference ManualIndex-2convert a color image to gray scale, 9-8convert a gray scale image to color, 9-9convert images f
IndexIndex-3set a region of interest (ROI), 4-22set error-handling mode, 3-4set one pixel to a new value, 4-38set pixels to the maximum value of thene
Intel®ImageProcessingLibraryReferenceManualIndex-4AndSfunction,5-12ApplyColorTwistfunction,9-21argumentorderconventions,1-7arithmeticoperations,5-1Abs
IndexIndex-5DeleteColorTwist, 9-22GrayToColor, 9-9HLS2RGB, 9-13HSV2RGB, 9-12LUV2RGB, 9-14ReduceBits, 9-3RGB2HLS, 9-13RGB2HSV, 9-12RGB2LUV, 9-14RGB2XYZ
Intel®Image Processing Library Reference ManualIndex-6convolution, 6-3Convolve2D function, 6-8Convolve2DFP function, 6-8ConvolveSep2D function, 6-11Co
IndexIndex-7EEqual function, 10-15EqualFPEps function, 10-16equalizing the image histogram, 10-10EqualS function, 10-21EqualSFP function, 10-22EqualSF
Image Architecture2-52applicable ROIs. For example, if an image has both types of ROI and aCOI, operations are performed only on the values of this CO
Intel®Image Processing Library Reference ManualIndex-8GetConvKernelFP, 6-6MaxFilter, 6-17MedianFilter, 6-15MinFilter, 6-18FixedFilter function, 6-12fo
IndexIndex-9Greaterfunction,10-13GreaterSfunction,10-17GreaterSFPfunction,10-18GuiBoxReportfunction,3-7Hhandlingoverflowandunderflow,2-8hardwareandsof
Intel®Image Processing Library Reference ManualIndex-10error handling, 3-1fast Fourier transform, 7-1filtering functions, 6-1geometric transform funct
IndexIndex-11iplConvertToDIB, 4-54iplConvertToDIBSep, 4-55iplConvolve2D, 6-8iplConvolve2DFP, 6-8iplConvolveSep2D, 6-11iplConvolveSep2DFP, 6-11iplCopy,
Intel®Image Processing Library Reference ManualIndex-12iplHLS2RGB, 9-13iplHSV2RGB, 9-12IplImage structure, 4-7ipliMalloc, 4-28IplLastStatus variable,
IndexIndex-13iplsMalloc, 4-29iplSpatialMoment, 12-9iplSquare, 5-6iplStdErrReport, 3-7iplSubtract, 5-8iplSubtractS, 5-4iplSubtractSFP, 5-4iplThreshold,
Intel®Image Processing Library Reference ManualIndex-14iMalloc, 4-28Malloc, 4-27sMalloc, 4-29wMalloc, 4-28MinFilter function, 6-18minimum permissible
IndexIndex-15Oonlineversionofthismanual,1-5opacitychannel.SeealphachannelOpenfunction,8-6openingandsmoothingtheimage,8-6operationmodesoflibraryfunctio
Intel®ImageProcessingLibraryReferenceManualIndex-16SetErrStatusfunction,3-3SetFPfunction,4-31SetROIfunction,4-22SetTileInfofunction,4-26Shearfunction,
IndexIndex-17ConvertFromDIBSep, 4-53ConvertToDIB, 4-54ConvertToDIBSep, 4-55TranslateDIB, 4-47wMalloc function, 4-28XXOR compositing operation, 5-22Xor
Intel®Image Processing Library Reference Manual2-62If one image (input or output) has one channel in its COI and anotherimage (input or output) has mo
Image Architecture2-72Alpha (Opacity) ChannelIn addition to the color channels, an image can have one alpha channel,also known as an opacity channel,
Intel®Image Processing Library Reference Manual2-82Execution ArchitectureHandling Overflow and UnderflowOverflow and underflow are handled in each ima
Image Architecture2-92This section gives a short overview of image tiling in the Image ProcessingLibrary. In Chapter 4 you will find more information
Intel®Image Processing Library Reference Manual2-102tile number, not pixel number, and count from the origin at (0,0);mode is one of the following:IPL
Error Handling3-13This chapter describes the error handling facility of the Image ProcessingLibrary. The library functions report a variety of errors
Intel®Image Processing Library Reference Manual3-23reporting these exceptions. A floating-point library is needed if a processorthat handles floating-
Error Handling3-33To simplify the coding for error checking and reporting, the error handlingsystem of the Image Processing Library supports a set of
This documentation as well as the software described in it is furnished under license and may only be usedor copied in accordance with the terms of th
Intel®Image Processing Library Reference Manual3-43GetErrModeSetErrModeGets and sets the errormodes that describe how anerror is processed.#define IPL
Error Handling3-53If you specify IPL_ErrModeParent, errors are processed in the “parents”of the function call tree. WheniplError() is called as the re
Intel®Image Processing Library Reference Manual3-63DiscussionThe function iplErrorStr() returns a short string describingstatus.Use this function to p
Error Handling3-73NullDevReportStdErrReportGuiBoxReportPredefined error-handlingfunctions that send errormessages to different outputdestinations.IPLS
Intel®Image Processing Library Reference Manual3-83DiscussionYou can use these predefined functions as error handlers to redirect errorreporting in yo
ErrorHandling3-93ErrorMacrosTheerrormacrosassociatedwiththeiplError()functionaredescribedbelow.#defineIPL_ERROR(status,func,context)\iplError((status)
Intel®Image Processing Library Reference Manual3-103The IPL_ERROR() macro simply calls the iplError() function by default.This macro is used by other
Error Handling3-113Table 3-1 iplError() Status Codes (continued)Status Code Value DescriptionIPL_StsNoMem-4 A function attempted to allocate memoryusi
Intel®Image Processing Library Reference Manual3-123Table 3-1 iplError() Status Codes (continued)Status Code Value DescriptionIPL_BadOrigin-20 Incorre
Error Handling3-133Error Handling ExampleThe following example describes the default error handling for a consoleapplication. In the example program,t
ContentsiiiChapter 1 OverviewAbout This Software... 1-1Hardware and Software Requirements...
Intel®Image Processing Library Reference Manual3-143Example 3-1 Error Functions (continued)/* library function */void libFuncB(double a, int order) {f
Error Handling3-153Example 3-2 Output for the Error Function Program (IPL_ErrModeParent)IPL Library Error: Invalid argument in function libFuncB: orde
Intel®Image Processing Library Reference Manual3-163application is running under a Windows system or you can choose to senderror messages to a special
Error Handling3-173Example 3-4 A Simple Error HandlerIPLStatus ownError(IPLStatus status, const char *func,const char *context, const char *file, int
This page is left blank for double-sided printingThis page is left blank for double-sided printing
ImageCreationandAccess4-14Thischapterdescribesthefunctionsthatprovidethefollowingfunctionalities:• Creatingandaccessingattributesofimages(bothtiledand
Intel®Image Processing Library Reference Manual4-24Table 4-1 Image Creation, Data Exchange and Windows DIB EnvironmentFunctions (continued)Group Funct
Image Creation and Access4-34Table 4-1 Image Creation, Data Exchange and Windows DIB EnvironmentFunctions (continued)Group Function Name Descriptionip
Intel®Image Processing Library Reference Manual4-44Image Header and AttributesThe Image Processing Library functions operate on a single format forima
Image Creation and Access4-54Table 4-2 Image Header Attributes (continued)Description ValueCorrespondingDIB AttributeChannel sequence 4-character stri
Intel®Image Processing Library Reference ManualivHandling Overflow and Underflow ... 2-8In-Place and Out-of-Place Operat
Intel®Image Processing Library Reference Manual4-64Figure 4-1 presents a graphical depiction of an RGB image with arectangular ROI and a COI.Figure 4-
Image Creation and Access4-74The C language definition for the IPLImage structure is given below.IplImage Structure Definitiontypedef struct _IplImage
Intel®Image Processing Library Reference Manual4-84Tiling Fields in the IplImage StructureImage tiling in the Image Processing Library was described i
Image Creation and Access4-94Creating ImagesThere are several ways of creating a new image:• Construct anIplImage header by setting the attributes to
Intel®Image Processing Library Reference Manual4-104colorModelA four-character string describing the colormodel: “RGB”, “GRAY”, “HLS” etc.channelSeqTh
Image Creation and Access4-114DiscussionThe function iplCreateImageHeader() creates an IplImage headeraccording to the specified attributes; see Examp
Intel®Image Processing Library Reference Manual4-124The mask region of interest specified by themaskROIpointer is discussedin the section Image Region
Image Creation and Access4-134AllocateImage, AllocateImageFPAllocates memory for imagedataaccordingtothespecified header.void iplAllocateImage(IplImag
Intel®Image Processing Library Reference Manual4-144Example 4-2 Allocating and Deallocating the Image Dataint example42( void ) {IplImage img;char col
Image Creation and Access4-154DeallocateImageDeallocates (frees) memoryfor image data pointed to inthe image header.void iplDeallocateImage(IplImage*i
ContentsvAllocateImage ... 4-13AllocateImageFP...
Intel®Image Processing Library Reference Manual4-164DeallocateDeallocates or frees memoryfor image header or data ormask ROI or rectangularROI or all
Image Creation and Access4-174CheckImageHeaderValidates field values ofan existing imageheader structure.IPLStatus iplCheckImageHeader ( const IplImag
Intel®Image Processing Library Reference Manual4-184IPL_BadCallBack Indicates an error condition if the image is tiledbut the call-back function is no
ImageCreationandAccess4-194Figure4-2illustratesanexampleofthetestimagegeneratedbytheiplCreateImageJaehne()function.Thesetestimagescanbeeffectivelyused
Intel®Image Processing Library Reference Manual4-204Setting Regions of InterestTo set a region of interest, the function iplSetROI() uses a ROI struct
Image Creation and Access4-214CreateROIAllocates and sets theregion of interest (ROI)structure.IplROI* iplCreateROI(intcoi, intxOffset, intyOffset,int
Intel®Image Processing Library Reference Manual4-224DiscussionThe function iplDeleteROI() deallocates a ROI structure previouslycreated byiplCreateROI
Image Creation and Access4-234Image Borders and Image TilingMany neighborhood operators need intensity values for pixels that lieoutside the image, th
Intel®Image Processing Library Reference Manual4-244IPL_BORDER_WRAP The required border rows or columns aretaken from the opposite side of theimage.bo
Image Creation and Access4-254Example 4-3 Setting the Border Mode for an Imageint example43( void ) {IplImage *imgh = iplCreateImageHeader( 3,0,IPL_DE
Intel®Image Processing Library Reference ManualviPutPixel... 4-38GetPixel...
Intel®Image Processing Library Reference Manual4-264SetTileInfoSets the IplTileInfostructure fields.void iplSetTileInfo(IplTileInfo* tileInfo,IplCallB
Image Creation and Access4-274Memory Allocation FunctionsFunctions of the ipl?Malloc() group allocate aligned memory blocks forthe image data. The siz
Intel®Image Processing Library Reference Manual4-284wMallocAllocates memory aligned toan 8-byte boundary for 16-bit words.short* iplwMalloc(intsize);s
Image Creation and Access4-294Return ValueThe function returns a pointer to an aligned memory block. If no memoryis available in the system, then theN
Intel®ImageProcessingLibraryReferenceManual4-304dMallocAllocatesmemoryalignedtoan8-byteboundaryfordoublefloating-pointelements.double*ipldMalloc(intsi
Image Creation and Access4-314DiscussionThe iplFree() function frees the aligned memory block allocated by oneof the functions iplMalloc(), iplwMalloc
Intel®Image Processing Library Reference Manual4-324depth lower than thefillVallue,thefillValueis saturated whenassigned to pixel. If an ROI is specif
Image Creation and Access4-334headers must be properly constructed and image data for both images mustbe allocated; see Example 4-5. The following con
Intel®Image Processing Library Reference Manual4-344Example 4-5 Copying Image Pixel Valuesint example45( void ) {IplImage *imga, *imgb;__try {imga = i
Image Creation and Access4-354ExchangeExchanges image databetween two images.void iplExchange(IplImage*ImageA, IplImage*ImageB);ImageAThe first image.
ContentsviiMultiply... 5-8MultiplyScale ...
Intel®Image Processing Library Reference Manual4-364ConvertConverts source image data toresultant image according tothe image headers.void iplConvert(
Image Creation and Access4-374Example 4-6 Converting Imagesint example46( void ) {IplImage *imga, *imgb;__try {imga = iplCreateImageHeader(1, 0, IPL_D
Intel®Image Processing Library Reference Manual4-384PutPixel,GetPixelSets/retrieves a value ofan image’s pixel.void iplPutPixel(IplImage*image, intx,
Image Creation and Access4-394Example 4-7 Using the Function iplGetPixel()int example_1001( void ) {char pixel[4]; /// buffer to get pixel data/// roi
Intel®Image Processing Library Reference Manual4-404ScaleScales the image data.IPLStatus iplScale (const IplImage*src,IplImage*dst);srcThesourceimage.
Image Creation and Access4-414ScaleFPConverts the image data toand from floating-point typeby scaling.IPLStatus iplScaleFP (const IplImage*src,IplImag
Intel®Image Processing Library Reference Manual4-424NoiseImageGenerates noise signaland adds it to an imagedata.IPLStatus iplNoiseImage ( IplImage*ima
Image Creation and Access4-434NoiseUniformInit,NoiseUniformInitFpInitializes parametersfor generating noisesignal with uniformdistribution.void iplNoi
Intel®Image Processing Library Reference Manual4-444NoiseGaussianInit,NoiseGaussianInitFpInitializes parametersfor generating noisesignal with Gaussia
Image Creation and Access4-454Working in the Windows DIB EnvironmentThe Image Processing Library provides functions to convert images to andfrom the W
Comentarios a estos manuales