SPATIALFLT (original) (raw)
Summary
The SPATIALFLT structure lets you design your own filter. Click here to view a diagram in a separate window that shows how the weights are applied in a typical Prewitt gradient directional edge enhancement operation.
Syntax
typedef struct tagSPATIALFLT
{
[L_UINT](leadtools-basic-data-types.html) uStructSize; /* size of this structure */
[L_INT](leadtools-basic-data-types.html) fltDivisor; /* sum divisor */
[L_INT](leadtools-basic-data-types.html) fltBias; /* sum bias */
[L_UINT](leadtools-basic-data-types.html) fltDim; /* filter dimensions */
[L_INT](leadtools-basic-data-types.html) fltMatrix[1]; /* array of filter coefficients */
} SPATIALFLT, *pSPATIALFLT;
Members
uStructSize
Size of this structure in bytes, for versioning. Use sizeof() operator to calculate this value.
fltDivisor
Number used to divide the sum of weighted values.
fltBias
Number added to the weighted average.
fltDim
Number of pixels on one side of the square (neighborhood) used for averaging. Usually an odd number such as 3 or 5 is used. If you specify an even number, the target pixel is the one northwest of the midpoint.
fltMatrix[1]
The array of weighting factors. The factors apply to pixels in the neighborhood read left to right and top to bottom (in the alphabetical order shown in the diagram). The weighting factors in the diagram would be specified as follows:
MyPrewitt.fltMatrix[ ] = {1, 1, 1, 1, -2, -1, 1, -1, -1}
Note that the array size is initialized as a placeholder with a value of 1. You must allocate space to hold your filter. Otherwise, you will get a stack fault.
Comments
pSPATIALFLT is a pointer to a SPATIALFLT structure. Where the function parameter type is pSPATIALFLT, you can declare a SPATIALFLT variable, update the structure's fields, and pass the variable's address in the parameter. Declaring a pSPATIALFLT variable is necessary only if your program requires a pointer.
It is beyond the scope of this documentation to explain how applying various weighting factors affects an image. If you specify your own filter, you should refer to a textbook on image processing. For example, Digital Image Processing: Principles and Applications, by Gregory A. Baxes.
Usage
Data Types
- GRADIENTFILTERDLGPARAMS
- LAPLACIANFILTERDLGPARAMS
- LINESEGMENTFILTERDLGPARAMS
- PREWITTFILTERDLGPARAMS
- SHIFTDIFFERENCEFILTERDLGPARAMS
- SOBELFILTERDLGPARAMS