- 创建基本项目结构和目录 - 添加CMake构建系统 - 实现基础的配置解析功能 - 添加YOLO推理框架支持 - 集成RTSP和视频流处理功能 - 添加性能监控和日志系统
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
#include "frame_drawer.hpp"
|
|
#include "../common/logger.hpp"
|
|
|
|
namespace pipeline {
|
|
|
|
bool FrameDrawer::init(const renderer::RendererConfig& config) {
|
|
if (initialized_) {
|
|
Logger::warning("FrameDrawer already initialized");
|
|
return true;
|
|
}
|
|
|
|
renderer_ = std::make_unique<Renderer>();
|
|
if (!renderer_->init(config)) {
|
|
Logger::error("Failed to initialize renderer");
|
|
return false;
|
|
}
|
|
|
|
initialized_ = true;
|
|
Logger::info("FrameDrawer initialized successfully");
|
|
return true;
|
|
}
|
|
|
|
bool FrameDrawer::processFrame(const cv::Mat& frame,
|
|
const std::vector<renderer::DetectionResult>& results,
|
|
const PerformanceMetrics& metrics) {
|
|
if (!initialized_) {
|
|
Logger::error("FrameDrawer not initialized");
|
|
return false;
|
|
}
|
|
|
|
if (frame.empty()) {
|
|
Logger::error("Input frame is empty");
|
|
return false;
|
|
}
|
|
|
|
return renderer_->render(frame, results, metrics);
|
|
}
|
|
|
|
void FrameDrawer::cleanup() {
|
|
if (initialized_) {
|
|
renderer_->cleanup();
|
|
initialized_ = false;
|
|
}
|
|
}
|
|
|
|
} // namespace pipeline
|