优化项目结构

This commit is contained in:
2025-11-19 21:18:09 +08:00
parent f1748b10b2
commit 14bd5c4bee
22 changed files with 21 additions and 26 deletions

3
.gitignore vendored
View File

@@ -33,4 +33,5 @@
*.app
# BUILD
./build/*
build/
.cache/

View File

@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
project(armor_detector_mdv)
# Set C++ standard
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Find OpenCV package
@@ -10,21 +10,20 @@ find_package(OpenCV REQUIRED)
# Include OpenCV headers
include_directories(${OpenCV_INCLUDE_DIRS})
# Include MindVision SDK headers (请根据实际SDK路径调整)
# 由于MindVision SDK在WSL中需要在WSL环境下编译
include_directories("/home/lld/mdv/include")
include_directories(~/code/cpp/Catalyst-MDVS/inc)
include_directories(/usr/include)
include_directories(/usr/include/opencv4/opencv2/imgproc)
# Add executable for MindVision version
add_executable(armor_detector_mdv
main.cpp
MindVisionCamera.cpp
ImagePreprocessor.cpp
ArmorDetector.cpp
KalmanFilter.cpp
Visualizer.cpp
BallisticPredictor.cpp
TTLCommunicator.cpp
src/main.cpp
src/MindVisionCamera.cpp
src/ImagePreprocessor.cpp
src/ArmorDetector.cpp
src/KalmanFilter.cpp
src/Visualizer.cpp
src/BallisticPredictor.cpp
src/TTLCommunicator.cpp
)
# Link OpenCV libraries
@@ -32,7 +31,7 @@ target_link_libraries(armor_detector_mdv ${OpenCV_LIBS})
# Link MindVision SDK library (路径需要根据实际情况调整)
# 根据提供的Makefile库名应该是MVSDK
link_directories("/home/lld/mdv/lib/x86")
link_directories("/lib")
target_link_libraries(armor_detector_mdv MVSDK)
# Additional flags for better compilation

0
conanfile.txt Normal file
View File

View File

@@ -1,5 +1,4 @@
#include "ArmorDetector.h"
#include <iostream>
#include <cmath>
#include <algorithm>

View File

@@ -12,7 +12,7 @@ Camera::Camera(int cam_id, const std::string& target_color) {
cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));
cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
cap.set(cv::CAP_PROP_FPS, 100)
cap.set(cv::CAP_PROP_FPS, 100);
is_opened = true;
this->target_color = target_color;

View File

@@ -1,5 +1,4 @@
#include "ImagePreprocessor.h"
#include <algorithm>
#include <cctype>
ImagePreprocessor::ImagePreprocessor() {

View File

@@ -1,6 +1,5 @@
#include "KalmanFilter.h"
#include "config.h"
#include <iostream>
KalmanFilter::KalmanFilter() {
// 4 state variables (x, y, dx, dy), 2 measurements (x, y)

View File

@@ -3,7 +3,6 @@
#include <vector>
#include <chrono>
#include <thread>
#include <memory>
#include <opencv2/opencv.hpp>
@@ -51,7 +50,7 @@ void output_control_data(const cv::Point2f* ballistic_point,
}
}
void set_camera_resolution(MindVisionCamera& camera, int width, int height) {
void set_camera_resolution(MindVisionCamera& , int width, int height) {
// The resolution is set during camera initialization in MindVision
// We need to implement a method in MindVisionCamera to change resolution
// For now, we'll just log the intended change

View File

@@ -3,7 +3,6 @@
#include <vector>
#include <chrono>
#include <thread>
#include <memory>
#include <opencv2/opencv.hpp>
@@ -117,10 +116,10 @@ int main(int /*argc*/, char* /*argv*/[]) {
cv::Mat frame;
try {
while (true) {
if (!camera.read_frame(frame)) {
std::cout << "Cannot read from MindVision camera, exiting!" << std::endl;
break;
}
//if (!camera.read_frame(frame)) {
// std::cout << "Cannot read from MindVision camera, exiting!" << std::endl;
// break;
//}
// Get actual image size and calculate center
cv::Point2f img_center(frame.cols / 2.0f, frame.rows / 2.0f);