00001 /** \file 00002 * \brief Kernel Generators 00003 * Creates several known kernels 00004 * 00005 * See Copyright Notice in im_lib.h 00006 */ 00007 00008 #ifndef __IM_KERNEL_H 00009 #define __IM_KERNEL_H 00010 00011 #if defined(__cplusplus) 00012 extern "C" { 00013 #endif 00014 00015 00016 /** \defgroup kernel Kernel Generators 00017 * \par 00018 * Creates several known kernels 00019 * \par 00020 * See \ref im_kernel.h 00021 * \ingroup convolve */ 00022 00023 00024 /** Creates a kernel with the following values: 00025 * 00026 \verbatim 00027 1 2 1 00028 0 0 0 00029 -1 -2 -1 00030 \endverbatim 00031 * 00032 * \verbatim im.KernelSobel() -> kernel: imImage [in Lua 5] \endverbatim 00033 * \ingroup kernel */ 00034 imImage* imKernelSobel(void); 00035 00036 /** Creates a kernel with the following values: 00037 * 00038 \verbatim 00039 1 1 1 00040 0 0 0 00041 -1 -1 -1 00042 \endverbatim 00043 * 00044 * \verbatim im.KernelPrewitt() -> kernel: imImage [in Lua 5] \endverbatim 00045 * \ingroup kernel */ 00046 imImage* imKernelPrewitt(void); 00047 00048 /** Creates a kernel with the following values: 00049 * 00050 \verbatim 00051 5 5 5 00052 -3 0 -3 00053 -3 -3 -3 00054 \endverbatim 00055 * 00056 * \verbatim im.KernelKirsh() -> kernel: imImage [in Lua 5] \endverbatim 00057 * \ingroup kernel */ 00058 imImage* imKernelKirsh(void); 00059 00060 /** Creates a kernel with the following values: 00061 * 00062 \verbatim 00063 0 -1 0 00064 -1 4 -1 00065 0 -1 0 00066 \endverbatim 00067 * 00068 * \verbatim im.KernelLaplacian4() -> kernel: imImage [in Lua 5] \endverbatim 00069 * \ingroup kernel */ 00070 imImage* imKernelLaplacian4(void); 00071 00072 /** Creates a kernel with the following values: 00073 * 00074 \verbatim 00075 -1 -1 -1 00076 -1 8 -1 00077 -1 -1 -1 00078 \endverbatim 00079 * 00080 * \verbatim im.KernelLaplacian8() -> kernel: imImage [in Lua 5] \endverbatim 00081 * \ingroup kernel */ 00082 imImage* imKernelLaplacian8(void); 00083 00084 /** Creates a kernel with the following values: 00085 * 00086 \verbatim 00087 0 -1 -1 -1 0 00088 -1 0 1 0 -1 00089 -1 1 8 1 -1 00090 -1 0 1 0 -1 00091 0 -1 -1 -1 0 00092 \endverbatim 00093 * 00094 * \verbatim im.KernelLaplacian5x5() -> kernel: imImage [in Lua 5] \endverbatim 00095 * \ingroup kernel */ 00096 imImage* imKernelLaplacian5x5(void); 00097 00098 /** Creates a kernel with the following values: 00099 * 00100 \verbatim 00101 -1 -1 -1 -1 -1 -1 -1 00102 -1 -1 -1 -1 -1 -1 -1 00103 -1 -1 -1 -1 -1 -1 -1 00104 -1 -1 -1 48 -1 -1 -1 00105 -1 -1 -1 -1 -1 -1 -1 00106 -1 -1 -1 -1 -1 -1 -1 00107 -1 -1 -1 -1 -1 -1 -1 00108 \endverbatim 00109 * 00110 * \verbatim im.KernelLaplacian7x7() -> kernel: imImage [in Lua 5] \endverbatim 00111 * \ingroup kernel */ 00112 imImage* imKernelLaplacian7x7(void); 00113 00114 /** Creates a kernel with the following values: 00115 * 00116 \verbatim 00117 0 -1 0 00118 0 1 0 00119 0 0 0 00120 \endverbatim 00121 * 00122 * \verbatim im.KernelGradian3x3() -> kernel: imImage [in Lua 5] \endverbatim 00123 * \ingroup kernel */ 00124 imImage* imKernelGradian3x3(void); 00125 00126 /** Creates a kernel with the following values: 00127 * 00128 \verbatim 00129 0 -1 -1 0 1 1 0 00130 -1 -2 -2 0 2 2 1 00131 -1 -2 -3 0 3 2 1 00132 -1 -2 -3 0 3 2 1 00133 -1 -2 -3 0 3 2 1 00134 -1 -2 -2 0 2 2 1 00135 0 -1 -1 0 1 1 0 00136 \endverbatim 00137 * 00138 * \verbatim im.KernelGradian7x7() -> kernel: imImage [in Lua 5] \endverbatim 00139 * \ingroup kernel */ 00140 imImage* imKernelGradian7x7(void); 00141 00142 /** Creates a kernel with the following values: 00143 * 00144 \verbatim 00145 -1 0 0 00146 0 0 0 00147 0 0 1 00148 \endverbatim 00149 * 00150 * \verbatim im.KernelSculpt() -> kernel: imImage [in Lua 5] \endverbatim 00151 * \ingroup kernel */ 00152 imImage* imKernelSculpt(void); 00153 00154 /** Creates a kernel with the following values: 00155 * 00156 \verbatim 00157 1 1 1 00158 1 1 1 00159 1 1 1 00160 \endverbatim 00161 * 00162 * \verbatim im.KernelMean3x3() -> kernel: imImage [in Lua 5] \endverbatim 00163 * \ingroup kernel */ 00164 imImage* imKernelMean3x3(void); 00165 00166 /** Creates a kernel with the following values: 00167 * 00168 \verbatim 00169 1 1 1 1 1 00170 1 1 1 1 1 00171 1 1 1 1 1 00172 1 1 1 1 1 00173 1 1 1 1 1 00174 \endverbatim 00175 * 00176 * \verbatim im.KernelMean5x5() -> kernel: imImage [in Lua 5] \endverbatim 00177 * \ingroup kernel */ 00178 imImage* imKernelMean5x5(void); 00179 00180 /** Creates a kernel with the following values: 00181 * 00182 \verbatim 00183 0 1 1 1 0 00184 1 1 1 1 1 00185 1 1 1 1 1 00186 1 1 1 1 1 00187 0 1 1 1 0 00188 \endverbatim 00189 * 00190 * \verbatim im.KernelMean5x5() -> kernel: imImage [in Lua 5] \endverbatim 00191 * \ingroup kernel */ 00192 imImage* imKernelCircularMean5x5(void); 00193 00194 /** Creates a kernel with the following values: 00195 * 00196 \verbatim 00197 1 1 1 1 1 1 1 00198 1 1 1 1 1 1 1 00199 1 1 1 1 1 1 1 00200 1 1 1 1 1 1 1 00201 1 1 1 1 1 1 1 00202 1 1 1 1 1 1 1 00203 1 1 1 1 1 1 1 00204 \endverbatim 00205 * 00206 * \verbatim im.KernelMean7x7() -> kernel: imImage [in Lua 5] \endverbatim 00207 * \ingroup kernel */ 00208 imImage* imKernelMean7x7(void); 00209 00210 /** Creates a kernel with the following values: 00211 * 00212 \verbatim 00213 0 0 1 1 1 0 0 00214 0 1 1 1 1 1 0 00215 1 1 1 1 1 1 1 00216 1 1 1 1 1 1 1 00217 1 1 1 1 1 1 1 00218 0 1 1 1 1 1 0 00219 0 0 1 1 1 0 0 00220 \endverbatim 00221 * 00222 * \verbatim im.KernelCircularMean7x7() -> kernel: imImage [in Lua 5] \endverbatim 00223 * \ingroup kernel */ 00224 imImage* imKernelCircularMean7x7(void); 00225 00226 /** Creates a kernel with the following values: 00227 * 00228 \verbatim 00229 1 2 1 00230 2 4 2 00231 1 2 1 00232 \endverbatim 00233 * 00234 * \verbatim im.KernelGaussian3x3() -> kernel: imImage [in Lua 5] \endverbatim 00235 * \ingroup kernel */ 00236 imImage* imKernelGaussian3x3(void); 00237 00238 /** Creates a kernel with the following values: 00239 * 00240 \verbatim 00241 1 4 6 4 1 00242 4 16 24 16 4 00243 6 24 36 24 6 00244 4 16 24 16 4 00245 1 4 6 4 1 00246 \endverbatim 00247 * 00248 * \verbatim im.KernelGaussian5x5() -> kernel: imImage [in Lua 5] \endverbatim 00249 * \ingroup kernel */ 00250 imImage* imKernelGaussian5x5(void); 00251 00252 /** Creates a kernel with the following values: 00253 * 00254 \verbatim 00255 1 2 3 2 1 00256 2 4 6 4 2 00257 3 6 9 6 3 00258 2 4 6 4 2 00259 1 2 3 2 1 00260 \endverbatim 00261 * 00262 * \verbatim im.KernelBarlett5x5() -> kernel: imImage [in Lua 5] \endverbatim 00263 * \ingroup kernel */ 00264 imImage* imKernelBarlett5x5(void); 00265 00266 /** Creates a kernel with the following values: 00267 * 00268 \verbatim 00269 0 -1 -1 -1 0 00270 -1 -1 3 -1 -1 00271 -1 3 4 3 -1 00272 -1 -1 3 -1 -1 00273 0 -1 -1 -1 0 00274 \endverbatim 00275 * 00276 * \verbatim im.KernelTopHat5x5() -> kernel: imImage [in Lua 5] \endverbatim 00277 * \ingroup kernel */ 00278 imImage* imKernelTopHat5x5(void); 00279 00280 /** Creates a kernel with the following values: 00281 * 00282 \verbatim 00283 0 0 -1 -1 -1 0 0 00284 0 -1 -1 -1 -1 -1 0 00285 -1 -1 3 3 3 -1 -1 00286 -1 -1 3 4 3 -1 -1 00287 -1 -1 3 3 3 -1 -1 00288 0 -1 -1 -1 -1 -1 0 00289 0 0 -1 -1 -1 0 0 00290 \endverbatim 00291 * 00292 * \verbatim im.KernelTopHat7x7() -> kernel: imImage [in Lua 5] \endverbatim 00293 * \ingroup kernel */ 00294 imImage* imKernelTopHat7x7(void); 00295 00296 /** Creates a kernel with the following values: 00297 * 00298 \verbatim 00299 0 -1 -2 -1 0 00300 -1 -4 0 -4 -1 00301 -2 0 40 0 -2 00302 -1 -4 0 -4 -1 00303 0 -1 -2 -1 0 00304 \endverbatim 00305 * 00306 * \verbatim im.KernelEnhance() -> kernel: imImage [in Lua 5] \endverbatim 00307 * \ingroup kernel */ 00308 imImage* imKernelEnhance(void); 00309 00310 #if defined(__cplusplus) 00311 } 00312 #endif 00313 00314 #endif 00315