#ifndef FEED_LEVEL_DETECTOR_H #define FEED_LEVEL_DETECTOR_H #include #include #include class FeedLevelDetector { public: FeedLevelDetector() ; // 设置采集频率(秒) void setCaptureInterval(int interval); // 开始检测(从摄像头) void startDetectionFromCamera(); // 处理图像并返回饲料距离顶部的像素距离 float detectFeedLevel(const std::string& imagePath); private: bool useCamera; // 标志位 int captureInterval; // 采集间隔(秒) cv::VideoCapture camera; // 预处理图像 cv::Mat preprocessImage(const cv::Mat& input); // 检测饲料表面 float findFeedSurface(const cv::Mat& image); // 显示结果 void displayResult(cv::Mat& image, float distance); // 时间戳记录 std::chrono::time_point lastCaptureTime; // 检查是否到达采集时间 bool shouldCaptureNow(); }; #endif // FEED_LEVEL_DETECTOR_H