#pragma once #include "Types.h" #include #include class ColorReader { public: ColorReader(); ~ColorReader(); // 执行颜色读取 std::vector readColors( const cv::Mat& image, const std::vector& centers, bool smallLocatorOnLeft, bool applyWB = true // 是否应用白平衡 ); private: // 白平衡处理 void applyWhiteBalance(cv::Mat& image); // 采样颜色 cv::Scalar sampleColor(const cv::Mat& image, const cv::Point2f& center, int radius); // 颜色空间转换 void convertColorSpaces(const cv::Scalar& bgr, double& h, double& s, double& v, double& l, double& a, double& b); // 调整顺序(始终从靠近小定位块开始) std::vector adjustOrder( std::vector& colors, bool smallLocatorOnLeft ); };