eLynx SDK
v3.0.1 C++ image processing API reference |
00001 //============================================================================ 00002 // KernelCollection.h Math.Component package 00003 //============================================================================ 00004 // Usage : Collection of convolution kernels 00005 //---------------------------------------------------------------------------- 00006 // Copyright (C) 2006 by eLynx project 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 // See the GNU Library General Public License for more details. 00017 //---------------------------------------------------------------------------- 00018 #ifndef __KernelCollection_h__ 00019 #define __KernelCollection_h__ 00020 00021 #include <elx/math/ConvolutionKernel.h> 00022 00023 namespace eLynx { 00024 namespace Math { 00025 00026 ExportedByMath uint32 elxGetKernelSize(double iRadius); 00027 00033 ExportedByMath ConvolutionKerneld elxMakeGaussianSeparableKernel(uint32 iWidth, double iVariance, bool ibHorizontal); 00034 00040 ExportedByMath ConvolutionKerneld elxMakeGaussianKernel(uint32 iWidth, uint32 iHeight, double iVariance); 00041 00046 ExportedByMath ConvolutionKerneld elxMakeGaussianKernel(uint32 iRadius, double iVariance); 00047 00052 ExportedByMath ConvolutionKerneld elxMakeMeanKernel(uint32 iWidth, uint32 iHeight); 00053 00058 ExportedByMath ConvolutionKerneld elxMakeMeanRadiusKernel(double iRadius, bool ibCircular=true); 00059 00066 ExportedByMath ConvolutionKerneld elxMakeCircleKernel(double iRadius, bool ibNormalize=false); 00067 00068 // blur filters 00069 ExportedByMath ConvolutionKerneld elxMakeSmooth3x3d(); 00070 ExportedByMath ConvolutionKerneld elxMakeCone5x5d(); 00071 ExportedByMath ConvolutionKerneld elxMakePyramidal5x5d(); 00072 ExportedByMath ConvolutionKerneld elxMakeLowpass3x3d(double iAlpha); 00073 00074 // sharpen filters 00075 ExportedByMath ConvolutionKerneld elxMakeSharpenSoft3x3d(); 00076 ExportedByMath ConvolutionKerneld elxMakeSharpenSoft5x5d(); 00077 ExportedByMath ConvolutionKerneld elxMakeSharpenSmooth3x3d(double iAlpha); 00078 ExportedByMath ConvolutionKerneld elxMakeSharpenMore3x3d(double iAlpha=1.0); 00079 ExportedByMath ConvolutionKerneld elxMakeSharpen(double iRadius); 00080 00081 ExportedByMath ConvolutionKerneld elxMakeEmboss3x3d(double iDegrees=0.0); 00082 00083 // gradient edge detectors 00084 ExportedByMath ConvolutionKerneld elxMakePixelDifference3x3d(); 00085 ExportedByMath ConvolutionKerneld elxMakeSeparatedPixelDifference3x3d(); 00086 ExportedByMath ConvolutionKerneld elxMakeRoberts3x3d(); 00087 00088 ExportedByMath ConvolutionKerneld elxMakePrewitt3x3d(); 00089 ExportedByMath ConvolutionKerneld elxMakePrewitt5x5d(); 00090 00091 ExportedByMath ConvolutionKerneld elxMakeFreiChen3x3d(); 00092 00093 ExportedByMath ConvolutionKerneld elxMakeSobel3x3d(); 00094 ExportedByMath ConvolutionKerneld elxMakeSobel5x5d(); 00095 ExportedByMath ConvolutionKerneld elxMakeSobelNxNd(uint32 iSize = 3); 00096 00097 ExportedByMath ConvolutionKerneld elxMakeRobinson5x5d(); 00098 00099 // laplacian edge detectors 00100 ExportedByMath ConvolutionKerneld elxMakeLaplacian3x3d(); 00101 ExportedByMath ConvolutionKerneld elxMakeLaplacian3x3d(double iAlpha); 00102 ExportedByMath ConvolutionKerneld elxMakeLaplacian(double iRadius); 00103 ExportedByMath ConvolutionKerneld elxMakeLoG(double iRadius, double iVariance); 00104 00105 ExportedByMath ConvolutionKerneld elxMakeMarrHildreth3x3d(); 00106 ExportedByMath ConvolutionKerneld elxMakeKirsch3x3d(); 00107 ExportedByMath ConvolutionKerneld elxMakeKirsch5x5d(); 00108 00109 } // namespace Math 00110 } // namespace eLynx 00111 00112 #endif // __KernelCollection_h__