#pragma once #include #include "fuck_intel.h" #include #include "constants.h" #include "pixels.h" using CalibrationColumn = std::array; // map [0; discretesInRage] (discretes) to [0; zRangeMm] (mm) using CalibrationTable = std::array; using CalibrationTablePtr = QSharedPointer; constexpr auto calibrationColumnHeight = std::tuple_size(); bool openCalibrationTable(const QString &filename, CalibrationTablePtr &table); void dumpCalibrationPixels(std::vector &&calibrationPixels); bool dump(const CalibrationTablePtr &table, const QString &filename); QList filter(const QList &rawProfiles); CalibrationTablePtr calibrateX(const QList &rawProfiles); CalibrationTablePtr calibrateZ(const QList &rawProfiles, const uint32_t &stepsPerMm); QImage calibrationTableToImage(const CalibrationTablePtr &calibrationTable); void interpolate(CalibrationTablePtr &table); void interpolate(CalibrationColumn &column);