📄 ipl.h
字号:
/*//// INTeL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright (c) 1995 Intel Corporation. All Rights Reserved.////// Purpose: IPL Common Header file//*/#if !defined (__IPL_H__) || defined (_OWN_BLDPCS)#define __IPL_H__#if defined( _WIN32 ) #define __STDCALL __stdcall #define __CDECL __cdecl #define __INT64 __int64#else #define __STDCALL #define __CDECL #define __INT64 long long#endif#if defined( _WIN32 ) #define __INLINE static __inline#elif defined( __ICC ) #define __INLINE static __inline#elif defined( __GNUC__ ) #define __INLINE static __inline__#else #define __INLINE static#endif#if defined( _VXWORKS ) #include "types/vxTypesOld.h"#endif#if !defined (_INC_WINDOWS) && !defined (_WINDOWS_) #if !defined (IPL_WINDOWS) && defined( _WIN32 ) #include <windows.h> /* include wingdi.h for BITMAPINFOHEADER declaration*/ #else #include "iplwind.h" /* smaller file */ #endif#endif#ifdef __cplusplusextern "C" {#endif/*---------------------- IPLibrary call conversion ----------------------*/#if !defined IPLAPI #if defined(IPL_W32DLL) #ifndef __BORLANDC__ #define IPLAPI(type,name,arg) \ extern __declspec(dllimport) type __STDCALL name arg; #else #define IPLAPI(type,name,arg) extern type _import __STDCALL name arg; #endif #else #define IPLAPI(type,name,arg) extern type __STDCALL name arg; #endif#endif/*========================================================================== Section: IPLibrary Definitions ==========================================================================*/#define IPL_DEPTH_SIGN 0x80000000 #define IPL_DEPTH_MASK 0x7FFFFFFF #define IPL_DEPTH_1U 1#define IPL_DEPTH_8U 8#define IPL_DEPTH_16U 16#define IPL_DEPTH_32F 32#define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8)#define IPL_DEPTH_16S (IPL_DEPTH_SIGN|16)#define IPL_DEPTH_32S (IPL_DEPTH_SIGN|32)#define IPL_DATA_ORDER_PIXEL 0#define IPL_DATA_ORDER_PLANE 1#define IPL_ORIGIN_TL 0#define IPL_ORIGIN_BL 1#define IPL_ALIGN_4BYTES 4#define IPL_ALIGN_8BYTES 8#define IPL_ALIGN_16BYTES 16#define IPL_ALIGN_32BYTES 32#define IPL_ALIGN_DWORD IPL_ALIGN_4BYTES#define IPL_ALIGN_QWORD IPL_ALIGN_8BYTES#define IPL_GET_TILE_TO_READ 1#define IPL_GET_TILE_TO_WRITE 2#define IPL_RELEASE_TILE 4#define IPL_LUT_LOOKUP 0#define IPL_LUT_INTER 1 /*========================================================================== Section: IPLibrary Types ==========================================================================*/#if !defined _OWN_BLDPCS typedef int IPLStatus; typedef unsigned char uchar; #if defined( linux ) #include <sys/types.h> #elif defined( _VXWORKS ) typedef unsigned int uint; #else typedef unsigned short ushort; typedef unsigned int uint; #endiftypedef struct _IplImage { int nSize; /* size of iplImage struct */ int ID; /* version */ int nChannels; int alphaChannel; int depth; /* pixel depth in bits */ char colorModel[4]; char channelSeq[4]; int dataOrder; int origin; int align; /* 4 or 8 byte align */ int width; int height; struct _IplROI *roi; struct _IplImage *maskROI; /* poiner to maskROI if any */ void *imageId; /* use of the application */ struct _IplTileInfo *tileInfo; /* contains information on tiling */ int imageSize; /* useful size in bytes */ char *imageData; /* pointer to aligned image */ int widthStep; /* size of aligned line in bytes */ int BorderMode[4]; /* */ int BorderConst[4]; /* */ char *imageDataOrigin; /* ptr to full, nonaligned image */} IplImage;typedef struct _IplROI { int coi; int xOffset; int yOffset; int width; int height;} IplROI;/* /////////////////////////////////////////////////////////////////////////// type IplCallBack// Purpose: Type of functions for access to external manager of tile// Parameters: // img - header provided for the parent image// xIndex,yIndex - indices of the requested tile. They refer to the tile// number not pixel number, and count from the origin at (0,0)// mode - one of the following:// IPL_GET_TILE_TO_READ - get a tile for reading;// tile data is returned in "img->tileInfo->tileData",// and must not be changed// IPL_GET_TILE_TO_WRITE - get a tile for writing;// tile data is returned in "img->tileInfo->tileData"// and may be changed;// changes will be reflected in the image// IPL_RELEASE_TILE - release tile; commit writes//// Notes: Memory pointers provided by a get function will not be used after the// corresponding release function has been called.//*/typedef void (__STDCALL *IplCallBack)(const IplImage* img, int xIndex, int yIndex, int mode);typedef struct _IplTileInfo { IplCallBack callBack; /* callback function */ void *id; /* additional identification field */ char *tileData; /* pointer on tile data */ int width; /* width of tile */ int height; /* height of tile */} IplTileInfo;typedef struct _IplLUT { int num; int *key; int *value; int *factor; int interpolateType;} IplLUT;typedef struct _IplColorTwist { int data[16]; int scalingValue;} IplColorTwist;typedef struct _IplConvKernel { int nCols; int nRows; int anchorX; int anchorY; int *values; int nShiftR;} IplConvKernel;typedef struct _IplConvKernelFP { int nCols; int nRows; int anchorX; int anchorY; float *values;} IplConvKernelFP;typedef enum { IPL_PREWITT_3x3_V=0, IPL_PREWITT_3x3_H, IPL_SOBEL_3x3_V, /* vertical */ IPL_SOBEL_3x3_H, /* horizontal */ IPL_LAPLACIAN_3x3, IPL_LAPLACIAN_5x5, IPL_GAUSSIAN_3x3, IPL_GAUSSIAN_5x5, IPL_HIPASS_3x3, IPL_HIPASS_5x5, IPL_SHARPEN_3x3} IplFilter;/*----------------- IplMomentState Structure Definition -----------------*/typedef struct { double scale; /* value to scale (m,n)th moment */ double value; /* spatial (m,n)th moment */} ownMoment;typedef ownMoment IplMomentState[4][4];/*========================================================================== Section: Wavelet transform constants and types. ==========================================================================*/ /*-------------------- Types of wavelet transforms. ---------------------*/typedef enum { IPL_WT_HAAR, IPL_WT_DAUBLET, IPL_WT_SYMMLET, IPL_WT_COIFLET, IPL_WT_VAIDYANATHAN, IPL_WT_BSPLINE, IPL_WT_BSPLINEDUAL, IPL_WT_LINSPLINE, IPL_WT_QUADSPLINE, IPL_WT_TYPE_UNKNOWN} IplWtType;/*----------------------- Filters symmetry type. ------------------------*/typedef enum { IPL_WT_SYMMETRIC, IPL_WT_ANTISYMMETRIC, IPL_WT_ASYMMETRIC, IPL_WT_SYMM_UNKNOWN} IplWtFiltSymm;/*--------------------- Filter bank orthogonality. ----------------------*/typedef enum { IPL_WT_ORTHOGONAL, IPL_WT_BIORTHOGONAL, IPL_WT_NOORTHOGONAL, IPL_WT_ORTH_UNKNOWN} IplWtOrthType;/*-------------------------- Filter structure ---------------------------*/typedef struct { float *taps; /* filter taps */ int length; /* length of filter */ int offset; /* offset of filter */ IplWtFiltSymm symmetry; /* filter symmetry property */} IplWtFilter;/*--------------- Wavelet functions interchange structure ---------------*/typedef struct { IplWtType type; /* type of wavelet transform */ int par1; /* first param. (transform order) */ int par2; /* second param. (only for biorth. tr.)*/ IplWtOrthType orth; /* orthogonality property */ IplWtFilter filtDecLow; /* low-pass decomposition filter */ IplWtFilter filtDecHigh; /* high-pass decomposition filter */ IplWtFilter filtRecLow; /* low-pass reconstruction filter */ IplWtFilter filtRecHigh; /* high-pass reconstruction filter */} IplWtKernel;/*--------------------- Noise generators structure ----------------------*/typedef enum { IPL_NOISE_UNIFORM, IPL_NOISE_GAUSSIAN} IplNoise;typedef struct _IplNoiseParam { IplNoise noise; unsigned int seed; int lowInt; int highInt; float lowFlt; float highFlt;} IplNoiseParam;/*========================================================================== Section: User function types. ==========================================================================*//* /////////////////////////////////////////////////////////////////////////// type IplUserFunc// Purpose: Type of callback functions for user point operation. // Provides user to write his own code to process each channel of// srcImage pixel. This function would be passed to iplUserProcess // function as its last parameter.// Parameters: // src - value of src image pixel's channel converted to integer// Returns: value of dst image pixel's channel. You wouldn't support // value saturatation, it will be done by iplUserProcess function//// Notes: For more information see iplUserProcess function description//*/typedef int (__STDCALL *IplUserFunc)(int src);/* /////////////////////////////////////////////////////////////////////////// type IplUserFuncFP// Purpose: Type of callback functions for user point operation. // Provides user to write his own code to process each channel// of srcImage pixel. This function would be passed to // iplUserProcessFP function as its last parameter.// Parameters: // src - value of src image pixel's channel converted to float// Returns: value of dst image pixel's channel. You wouldn't support // value saturatation for integer data types, it will be done // by iplUserProcessFP function//// Notes: For more information see iplUserProcessFP function description//*/typedef float (__STDCALL *IplUserFuncFP)(float src);/* /////////////////////////////////////////////////////////////////////////// type IplUserFuncPixel// Purpose: Type of callback functions for user point operation. // Provides user to write his own code to process all channels // of srcImage pixel simultaneously. This function would be // passed to iplUserProcessPixel function as its last parameter.// Function may call IPL_ERROR to set IplError status.// Returns: None// Parameters: // srcImage - src image header to access image depth and number of channels// srcPixel - pointer to array of src image pixel values. // Function ought to convert this pointer to an array of src depth. // dstImage - dst image header to access image depth and number of channels// dstPixel - pointer to array of dst image pixel values.// Function ought to convert this pointer to an array of dst depth. //// Notes: For more information see iplUserProcessPixel function description//*/typedef void (__STDCALL *IplUserFuncPixel)(IplImage* srcImage, void* srcPixel, IplImage* dstImage, void* dstPixel);#endif/*========================================================================== Section: Image Creation Functions ==========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -