#ifndef KERNELPARAMS_H #define KERNELPARAMS_H #include #include #include #include #include #define ARRAY_SIZE(X) X.length() #define DYN_CNTR_CONST_PIECE_NO 256U #define MIN_OUTPUT_LEVEL 3U #define MAX_OUTPUT_LEVEL 252U #define MAX_LOG_INPUT_LEVEL 24*2048 #define MIN_LOG_INPUT_DEFAULT 6U #define MAX_LOG_INPUT_DEFAULT 21 #define GAIN_DEFAULT 4 #define CONTRAST_NUM_DEFAULT 1U #define EPSILSON 1.401298E-45f struct DynamicContrastParameters { float gain; float min_output_level; float max_output_level; QList const_piecewise_x; QList const_piecewise_y; float max_log_input_level; float app_min_log_input_level; float app_max_log_input_level; }; struct scanConversionParameters { quint32 pixelXNo; quint32 pixelZNo; quint32 gridX_size; quint32 gridZ_size; float dx; float dz; QList gridX; QList gridZ; QList> queryX; QList> queryZ; }; struct scanConversionMatrix { float a11; float a12; float b11; float b12; float b21; float b22; float c11; float c12; float dx; float dz; }; float linear_interpolate (float output, QList x, QList y, quint32 num); float DynamicContrast(float input, DynamicContrastParameters ¶ms); QPair readScanConversionIndex(float x, float z, scanConversionParameters ¶ms); float scanConversionFmaCalc(scanConversionMatrix &field); #endif // KERNELPARAMS_H