diff options
| author | Nikita Kostovsky <nikita@kostovsky.me> | 2025-01-12 11:50:34 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <nikita@kostovsky.me> | 2025-01-12 11:50:34 +0100 |
| commit | 9dde2ab53c8e2c97647164fce89cf149260fbc8f (patch) | |
| tree | f428169ce67a93d0532d91883e18892736bb26b4 /imagealgos.cpp | |
| parent | 8630381c7e1fa1527026b9c823790dc3f92c6321 (diff) | |
implement calibration
Diffstat (limited to 'imagealgos.cpp')
| -rw-r--r-- | imagealgos.cpp | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/imagealgos.cpp b/imagealgos.cpp index 267e4ae..98d5fb0 100644 --- a/imagealgos.cpp +++ b/imagealgos.cpp @@ -7,23 +7,24 @@ #include <cstring> #include <algorithm> -#include <chrono> #include <iostream> #include <limits> #include <mutex> -#include <typeinfo> #include <utility> -// #include <arm_neon.h> - -#include "fuck_intel.h" -#include "genetic_algos.h" #include "macro.h" uint8_t pgm_image[64 + img_width * img_height * sizeof(uint16_t)]; size_t pgm_image_size = 0; std::mutex pgm_image_mtx; +template<typename T> +T median3(const T &a, const T &b, const T &c) +{ + using namespace std; + return max(min(a, b), min(max(a, b), c)); +} + size_t pgm_save(Image *img, FILE *outfile, bool really_save) { std::lock_guard<std::mutex> lg(pgm_image_mtx); @@ -279,27 +280,6 @@ Pixels process_columns(Image &image) return result; } -Pixels& Pixels::operator+=(const Pixels& other) -{ - std::transform(std::execution::par, - pixels.begin(), pixels.end(), - other.pixels.begin(), - pixels.begin(), - // [](auto& toAdd) { return dst += src; }); - std::plus<>()); - - return *this; -} - -Pixels& Pixels::operator/=(const float divider) -{ - std::for_each(std::execution::par_unseq, - pixels.begin(), pixels.end(), - [divider](auto& pixel) { pixel /= divider; }); - - return *this; -} - QList<QLineF> pixelsToLines(const Pixels &rawProfile) { const auto& pixels = rawProfile.pixels; |
