From d0b88daf808d5a398231536a10ae18c9e8662c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=B0=E4=BB=94?= Date: Sun, 11 Jan 2026 17:06:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ARM=E4=B8=8B=E7=9A=84Cmake?= =?UTF-8?q?=EF=BC=9B=E5=9F=BA=E7=A1=80=E7=AE=97=E6=B3=95=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 69 ++++++++++++++++++----------- baseAlgorithm/baseAlgorithm.vcxproj | 4 +- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 106f703..665d4bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,11 +2,16 @@ cmake_minimum_required(VERSION 3.5) project(ZAlgo) +# OpenCV版本选择:320 或 480 +# 使用方法:cmake -DOPENCV_VERSION=320 .. 或 cmake -DOPENCV_VERSION=480 .. +set(OPENCV_VERSION "320" CACHE STRING "OpenCV版本选择: 320 或 480") +set_property(CACHE OPENCV_VERSION PROPERTY STRINGS "320" "480") + set(DCMAKE_BUILD_SYSNAME Arm) set(CMAKE_BUILD_ARCH aarch64) set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc") -set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++") +set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++") ADD_DEFINITIONS("-fPIC -O3") ADD_DEFINITIONS("-fexceptions") @@ -20,41 +25,55 @@ SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/libs) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/bin) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/VzNLSDK/Inc) -# INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/OpenCV320/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/opencv/build/include) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/eigen3) + +# 根据OPENCV_VERSION选择不同的OpenCV路径 +if(OPENCV_VERSION STREQUAL "320") + message(STATUS "使用 OpenCV 3.2.0") + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/OpenCV320/include) + add_definitions(-DOPENCV_VERSION_320) +elseif(OPENCV_VERSION STREQUAL "480") + message(STATUS "使用 OpenCV 4.8.0") + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/opencv480/include) + add_definitions(-DOPENCV_VERSION_480) +else() + message(FATAL_ERROR "不支持的OpenCV版本: ${OPENCV_VERSION},请使用 320 或 480") +endif() INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/sourceCode/inc) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/sourceCode) ADD_DEFINITIONS(-DSG_API_LIBRARY) -ADD_LIBRARY(baseAlgorithm SHARED sourceCode/SG_baseFunc.cpp - sourceCode/SG_clustering.cpp - sourceCode/SG_featureGrow.cpp - sourceCode/SG_lineFeature.cpp - sourceCode/SG_regionGrow.cpp - sourceCode/WD_noiseFilter.cpp - sourceCode/WD_watershed.cpp - ) +if(OPENCV_VERSION STREQUAL "320") + ADD_LIBRARY(baseAlgorithm SHARED sourceCode/SG_baseFunc.cpp + sourceCode/SG_clustering.cpp + sourceCode/SG_featureGrow.cpp + sourceCode/SG_lineFeature.cpp + sourceCode/SG_regionGrow.cpp + sourceCode/WD_noiseFilter.cpp + sourceCode/WD_watershed.cpp + ) -ADD_LIBRARY(bagPositioning SHARED sourceCode/SG_bagPositioning.cpp) + ADD_LIBRARY(bagPositioning SHARED sourceCode/SG_bagPositioning.cpp) -ADD_LIBRARY(lapWeldDetection SHARED sourceCode/SX_lapWeldDetection.cpp) + ADD_LIBRARY(lapWeldDetection SHARED sourceCode/SX_lapWeldDetection.cpp) -ADD_LIBRARY(beltTearingDetection SHARED sourceCode/beltTearingDetection.cpp) + ADD_LIBRARY(beltTearingDetection SHARED sourceCode/beltTearingDetection.cpp) -ADD_LIBRARY(workpieceCornerExtraction SHARED sourceCode/BQ_workpieceCornerExtraction.cpp) + ADD_LIBRARY(workpieceCornerExtraction SHARED sourceCode/BQ_workpieceCornerExtraction.cpp) -ADD_LIBRARY(particleSizeMeasurement SHARED sourceCode/WD_particleSizeMeasure.cpp) + ADD_LIBRARY(particleSizeMeasurement SHARED sourceCode/WD_particleSizeMeasure.cpp) -ADD_LIBRARY(binocularMarkCam SHARED sourceCode/binocularMarkCam.cpp - sourceCode/aruco/aruco.cpp - sourceCode/aruco/aruco_calib.cpp - ) + ADD_LIBRARY(wheelArchHeigthMeasure SHARED sourceCode/wheelArchHeigthMeasure.cpp) -#add executable file -# ADD_EXECUTABLE(bagPositioning_test bagPositioning_test/bagPositioning_test.cpp) + ADD_LIBRARY(channelSpaceMeasure SHARED sourceCode/channelSpaceMeasure.cpp) -# TARGET_LINK_LIBRARIES(bagPositioning_test - # bagPositioning - # ) +elseif(OPENCV_VERSION STREQUAL "480") + ADD_LIBRARY(binocularMarkCam SHARED sourceCode/binocularMarkCam.cpp + sourceCode/aruco/aruco.cpp + sourceCode/aruco/aruco_calib.cpp + ) +else() + message(FATAL_ERROR "不支持的OpenCV版本: ${OPENCV_VERSION},请使用 320 或 480") +endif() diff --git a/baseAlgorithm/baseAlgorithm.vcxproj b/baseAlgorithm/baseAlgorithm.vcxproj index 157bced..5b7d632 100644 --- a/baseAlgorithm/baseAlgorithm.vcxproj +++ b/baseAlgorithm/baseAlgorithm.vcxproj @@ -78,12 +78,12 @@ true - ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;F:\ShangGu\ProductDev\AlgoDev\thirdParty\PCL 1.12.0\3rdParty\Eigen\eigen3;$(IncludePath) + ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;..\..\thirdParty\PCL 1.12.0\3rdParty\Eigen\eigen3;$(IncludePath) $(SolutionDir)build\$(Platform)\$(Configuration)\ false - ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;F:\ShangGu\ProductDev\AlgoDev\thirdParty\PCL 1.12.0\3rdParty\Eigen\eigen3;$(IncludePath) + ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;..\..\thirdParty\PCL 1.12.0\3rdParty\Eigen\eigen3;$(IncludePath) $(SolutionDir)build\$(Platform)\$(Configuration)\