00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CImageConvolution_H
00029 #define CImageConvolution_H
00030
00031 #include <mrpt/utils/CMRPTImage.h>
00032 #include <mrpt/utils/CMRPTImageFloat.h>
00033 #include <mrpt/vision/CGaussianConvolutionKernel.h>
00034 #include <mrpt/vision/utils.h>
00035
00036 namespace mrpt
00037 {
00038 namespace vision
00039 {
00040 using namespace mrpt::utils;
00041
00045 class MRPTDLLIMPEXP CImageConvolution
00046 {
00047 private:
00048
00049 public:
00055 static void convolutionHorzVert(
00056 CMRPTImageFloat &inImg,
00057 CMRPTImageFloat &outImg,
00058 CGaussianConvolutionKernel &kernel);
00059
00063
00064
00065
00066 static void convolutionHorizontal(
00067 CMRPTImageFloat &inImg,
00068 CMRPTImageFloat &outImg,
00069 CGaussianConvolutionKernel &kernel,
00070 TImageROI ROI = TImageROI());
00071
00072
00077
00078
00079 static void convolutionVertical(
00080 CMRPTImageFloat &inImg,
00081 CMRPTImageFloat &outImg,
00082 CGaussianConvolutionKernel &kernel,
00083 TImageROI ROI = TImageROI());
00084
00085
00089
00090
00091 static void convolutionSeparate(
00092 CMRPTImageFloat &inImg,
00093 CMRPTImageFloat &outImg,
00094 CGaussianConvolutionKernel &kernelHorz,
00095 CGaussianConvolutionKernel &kernelVert,
00096 TImageROI ROI = TImageROI());
00097
00098
00104 static void convolutionGeneric(
00105 const CMRPTImageFloat &inImg,
00106 CMRPTImageFloat &outImg,
00107 CMatrix &kernel,
00108 unsigned int x_min=0,
00109 unsigned int x_length=0,
00110 unsigned int y_min=0,
00111 unsigned int y_length=0);
00112
00113 static void convolutionGeneric(
00114 const CMRPTImageFloat &inImg,
00115 CMRPTImageFloat &outImg,
00116 CMatrix &kernel,
00117 TImageROI ROI = TImageROI());
00118
00124 static void computeGradients(
00125 CMRPTImageFloat &inImg,
00126 float sigma,
00127 CMRPTImageFloat &outGradientX,
00128 CMRPTImageFloat &outGradientY);
00129
00135
00136
00137 static void computeSmoothedImage(
00138 CMRPTImageFloat &inImg,
00139 float sigma,
00140 CMRPTImageFloat &outImg,
00141 TImageROI ROI = TImageROI());
00142
00143
00144 };
00145
00146 }
00147 }
00148
00149 #endif