eLynx SDK
v3.3.0 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 00028 ExportedByMath uint32 elxGetKernelSize(double iRadius); 00029 00035 ExportedByMath ConvolutionKerneld elxMakeGaussianSeparableKernel(uint32 iWidth, double iVariance, bool ibHorizontal); 00036 00042 ExportedByMath ConvolutionKerneld elxMakeGaussianKernel(uint32 iWidth, uint32 iHeight, double iVariance); 00043 00048 ExportedByMath ConvolutionKerneld elxMakeGaussianKernel(uint32 iRadius, double iVariance); 00049 00054 ExportedByMath ConvolutionKerneld elxMakeMeanKernel(uint32 iWidth, uint32 iHeight); 00055 00060 ExportedByMath ConvolutionKerneld elxMakeMeanRadiusKernel(double iRadius, bool ibCircular=true); 00061 00068 ExportedByMath ConvolutionKerneld elxMakeCircleKernel(double iRadius, bool ibNormalize=false); 00069 00070 00073 00075 ExportedByMath ConvolutionKerneld elxMakeSmooth3x3d(); 00076 00078 ExportedByMath ConvolutionKerneld elxMakeCone5x5d(); 00079 00081 ExportedByMath ConvolutionKerneld elxMakePyramidal5x5d(); 00082 00085 ExportedByMath ConvolutionKerneld elxMakeLowpass3x3d(double iAlpha); 00087 00088 00091 00094 ExportedByMath ConvolutionKerneld elxMakeSharpen(double iRadius=3.0); 00095 00098 ExportedByMath ConvolutionKerneld elxMakeSharpen3x3d(double iAmount=5.0); 00099 00101 ExportedByMath ConvolutionKerneld elxMakeSharpenSoft3x3d(); 00102 00104 ExportedByMath ConvolutionKerneld elxMakeSharpenSoft5x5d(); 00105 00108 ExportedByMath ConvolutionKerneld elxMakeSharpenSmooth3x3d(double iAlpha); 00109 00112 ExportedByMath ConvolutionKerneld elxMakeSharpenMore3x3d(double iAlpha=1.0); 00114 00115 00118 00120 ExportedByMath ConvolutionKerneld elxMakePixelDifference3x3d(); 00121 00123 ExportedByMath ConvolutionKerneld elxMakeSeparatedPixelDifference3x3d(); 00124 00126 ExportedByMath ConvolutionKerneld elxMakeRoberts3x3d(); 00127 00129 ExportedByMath ConvolutionKerneld elxMakePrewitt3x3d(); 00130 00132 ExportedByMath ConvolutionKerneld elxMakePrewitt5x5d(); 00133 00135 ExportedByMath ConvolutionKerneld elxMakeFreiChen3x3d(); 00136 00138 ExportedByMath ConvolutionKerneld elxMakeSobel3x3d(); 00139 00141 ExportedByMath ConvolutionKerneld elxMakeSobel5x5d(); 00142 00145 ExportedByMath ConvolutionKerneld elxMakeSobelNxNd(uint32 iSize = 3); 00146 00148 ExportedByMath ConvolutionKerneld elxMakeRobinson5x5d(); 00150 00151 00154 00156 ExportedByMath ConvolutionKerneld elxMakeLaplacian3x3d(); 00157 00160 ExportedByMath ConvolutionKerneld elxMakeLaplacian3x3d(double iAlpha); 00161 00164 ExportedByMath ConvolutionKerneld elxMakeLaplacian(double iRadius); 00165 00169 ExportedByMath ConvolutionKerneld elxMakeLoG(double iRadius, double iVariance); 00171 00173 ExportedByMath ConvolutionKerneld elxMakeMarrHildreth3x3d(); 00174 00176 ExportedByMath ConvolutionKerneld elxMakeKirsch3x3d(); 00177 00179 ExportedByMath ConvolutionKerneld elxMakeKirsch5x5d(); 00180 00183 ExportedByMath ConvolutionKerneld elxMakeEmboss3x3d(double iDegrees=0.0); 00184 00185 } // namespace Math 00186 } // namespace eLynx 00187 00188 #endif // __KernelCollection_h__