Path: blob/master/modules/features2d/src/kaze/nldiffusion_functions.h
16337 views
/**1* @file nldiffusion_functions.h2* @brief Functions for non-linear diffusion applications:3* 2D Gaussian Derivatives4* Perona and Malik conductivity equations5* Perona and Malik evolution6* @date Dec 27, 20117* @author Pablo F. Alcantarilla8*/910#ifndef __OPENCV_FEATURES_2D_NLDIFFUSION_FUNCTIONS_H__11#define __OPENCV_FEATURES_2D_NLDIFFUSION_FUNCTIONS_H__1213/* ************************************************************************* */14// Declaration of functions1516namespace cv17{1819// Gaussian 2D convolution20void gaussian_2D_convolution(const cv::Mat& src, cv::Mat& dst, int ksize_x, int ksize_y, float sigma);2122// Diffusivity functions23void pm_g1(InputArray Lx, InputArray Ly, OutputArray dst, float k);24void pm_g2(InputArray Lx, InputArray Ly, OutputArray dst, float k);25void weickert_diffusivity(InputArray Lx, InputArray Ly, OutputArray dst, float k);26void charbonnier_diffusivity(InputArray Lx, InputArray Ly, OutputArray dst, float k);2728float compute_k_percentile(const cv::Mat& img, float perc, float gscale, int nbins, int ksize_x, int ksize_y);2930// Image derivatives31void compute_scharr_derivatives(const cv::Mat& src, cv::Mat& dst, int xorder, int yorder, int scale);32void compute_derivative_kernels(cv::OutputArray _kx, cv::OutputArray _ky, int dx, int dy, int scale);33void image_derivatives_scharr(const cv::Mat& src, cv::Mat& dst, int xorder, int yorder);3435// Nonlinear diffusion filtering scalar step36void nld_step_scalar(cv::Mat& Ld, const cv::Mat& c, cv::Mat& Lstep, float stepsize);3738// For non-maxima suppresion39bool check_maximum_neighbourhood(const cv::Mat& img, int dsize, float value, int row, int col, bool same_img);4041// Image downsampling42void halfsample_image(const cv::Mat& src, cv::Mat& dst);4344}4546#endif474849