316 lines
6.2 KiB
C
316 lines
6.2 KiB
C
|
/** \file
|
||
|
* \brief Kernel Generators
|
||
|
* Creates several known kernels
|
||
|
*
|
||
|
* See Copyright Notice in im_lib.h
|
||
|
*/
|
||
|
|
||
|
#ifndef __IM_KERNEL_H
|
||
|
#define __IM_KERNEL_H
|
||
|
|
||
|
#if defined(__cplusplus)
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/** \defgroup kernel Kernel Generators
|
||
|
* \par
|
||
|
* Creates several known kernels
|
||
|
* \par
|
||
|
* See \ref im_kernel.h
|
||
|
* \ingroup convolve */
|
||
|
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 2 1
|
||
|
0 0 0
|
||
|
-1 -2 -1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelSobel() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelSobel(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 1 1
|
||
|
0 0 0
|
||
|
-1 -1 -1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelPrewitt() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelPrewitt(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
5 5 5
|
||
|
-3 0 -3
|
||
|
-3 -3 -3
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelKirsh() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelKirsh(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 0
|
||
|
-1 4 -1
|
||
|
0 -1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelLaplacian4() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelLaplacian4(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
-1 -1 -1
|
||
|
-1 8 -1
|
||
|
-1 -1 -1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelLaplacian8() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelLaplacian8(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 -1 -1 0
|
||
|
-1 0 1 0 -1
|
||
|
-1 1 8 1 -1
|
||
|
-1 0 1 0 -1
|
||
|
0 -1 -1 -1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelLaplacian5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelLaplacian5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
-1 -1 -1 48 -1 -1 -1
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
-1 -1 -1 -1 -1 -1 -1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelLaplacian7x7() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelLaplacian7x7(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 0
|
||
|
0 1 0
|
||
|
0 0 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelGradian3x3() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelGradian3x3(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 -1 0 1 1 0
|
||
|
-1 -2 -2 0 2 2 1
|
||
|
-1 -2 -3 0 3 2 1
|
||
|
-1 -2 -3 0 3 2 1
|
||
|
-1 -2 -3 0 3 2 1
|
||
|
-1 -2 -2 0 2 2 1
|
||
|
0 -1 -1 0 1 1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelGradian7x7() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelGradian7x7(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
-1 0 0
|
||
|
0 0 0
|
||
|
0 0 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelSculpt() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelSculpt(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 1 1
|
||
|
1 1 1
|
||
|
1 1 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelMean3x3() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelMean3x3(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelMean5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelMean5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 1 1 1 0
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
1 1 1 1 1
|
||
|
0 1 1 1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelMean5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelCircularMean5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelMean7x7() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelMean7x7(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 0 1 1 1 0 0
|
||
|
0 1 1 1 1 1 0
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
1 1 1 1 1 1 1
|
||
|
0 1 1 1 1 1 0
|
||
|
0 0 1 1 1 0 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelCircularMean7x7() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelCircularMean7x7(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 2 1
|
||
|
2 4 2
|
||
|
1 2 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelGaussian3x3() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelGaussian3x3(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 4 6 4 1
|
||
|
4 16 24 16 4
|
||
|
6 24 36 24 6
|
||
|
4 16 24 16 4
|
||
|
1 4 6 4 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelGaussian5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelGaussian5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
1 2 3 2 1
|
||
|
2 4 6 4 2
|
||
|
3 6 9 6 3
|
||
|
2 4 6 4 2
|
||
|
1 2 3 2 1
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelBarlett5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelBarlett5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 -1 -1 0
|
||
|
-1 -1 3 -1 -1
|
||
|
-1 3 4 3 -1
|
||
|
-1 -1 3 -1 -1
|
||
|
0 -1 -1 -1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelTopHat5x5() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelTopHat5x5(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 0 -1 -1 -1 0 0
|
||
|
0 -1 -1 -1 -1 -1 0
|
||
|
-1 -1 3 3 3 -1 -1
|
||
|
-1 -1 3 4 3 -1 -1
|
||
|
-1 -1 3 3 3 -1 -1
|
||
|
0 -1 -1 -1 -1 -1 0
|
||
|
0 0 -1 -1 -1 0 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelTopHat7x7() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelTopHat7x7(void);
|
||
|
|
||
|
/** Creates a kernel with the following values:
|
||
|
*
|
||
|
\verbatim
|
||
|
0 -1 -2 -1 0
|
||
|
-1 -4 0 -4 -1
|
||
|
-2 0 40 0 -2
|
||
|
-1 -4 0 -4 -1
|
||
|
0 -1 -2 -1 0
|
||
|
\endverbatim
|
||
|
*
|
||
|
* \verbatim im.KernelEnhance() -> kernel: imImage [in Lua 5] \endverbatim
|
||
|
* \ingroup kernel */
|
||
|
imImage* imKernelEnhance(void);
|
||
|
|
||
|
#if defined(__cplusplus)
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|