algoLib/sourceCode/WD_convolveGauss.h
2026-08-14 15:28:22 +08:00

48 lines
1.1 KiB
C++

#pragma once
#include "SG_baseDataType.h"
typedef enum
{
/** The Constant DERIV_R. */
DERIV_R = 1, /* Derivative in row direction */
/** The Constant DERIV_C. */
DERIV_C, /* Derivative in column direction */
/** The Constant DERIV_RR. */
DERIV_RR, /* Second derivative in row direction */
/** The Constant DERIV_RC. */
DERIV_RC, /* Second derivative in row and column direction */
/** The Constant DERIV_CC. */
DERIV_CC, /* Second derivative in column direction */
}DERIV_TYPE;
typedef enum
{
/** The Constant MODE_LIGHT. */
MODE_LIGHT = 1, /* Extract bright lines */
/** The Constant MODE_DARK. */
MODE_DARK, /* Extract dark lines */
}CONVOLVE_MODE;
/** The Constant INITIAL_SIZE. */
#define INITIAL_SIZE 100
/** The Constant REALLOC_FACTOR. */
#define REALLOC_FACTOR 2
double* compute_gauss_mask_1(int* num, double sigma);
double* compute_gauss_mask_2(int* num, double sigma);
void wd_convolveGauss_laserLine(
std::vector<SVzNL3DPosition>& a_line,
int startId, int endId,
std::vector<double>& gaussConvolve_1st,
std::vector<double>& gaussConvolve_2nd,
float chkWidth, float scale);