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 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9ARM=E4=B8=8B=E7=9A=84Cmak?= =?UTF-8?q?e=EF=BC=9B=E5=9F=BA=E7=A1=80=E7=AE=97=E6=B3=95=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=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)\ From 046b0e03f72b2415033008c433903e917286c951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=B0=E4=BB=94?= Date: Tue, 20 Jan 2026 20:52:49 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0ARM=E6=96=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 665d4bf..f8c72f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -fpermissive -std=c++14 -fno-use-cxa-at #out path configure_file #设置库路径 -SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/libs) +SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Arm/aarch64) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/bin) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/VzNLSDK/Inc) @@ -68,6 +68,10 @@ if(OPENCV_VERSION STREQUAL "320") ADD_LIBRARY(wheelArchHeigthMeasure SHARED sourceCode/wheelArchHeigthMeasure.cpp) ADD_LIBRARY(channelSpaceMeasure SHARED sourceCode/channelSpaceMeasure.cpp) + + ADD_LIBRARY(rodAndBarDetection SHARED sourceCode/rodAndBarDetection.cpp) + + ADD_LIBRARY(bagThreadPositioning SHARED sourceCode/bagThreadPositioning.cpp) elseif(OPENCV_VERSION STREQUAL "480") ADD_LIBRARY(binocularMarkCam SHARED sourceCode/binocularMarkCam.cpp From 2837586b696bb533e1aa6e6d9c32c278becdbf9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=B0=E4=BB=94?= Date: Sun, 22 Mar 2026 10:51:27 +0800 Subject: [PATCH 3/4] =?UTF-8?q?ARM=E6=96=B0=E7=9A=84=E5=BA=93=E7=BC=96?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8c72f5..0f0c4a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,8 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/sourceCode) ADD_DEFINITIONS(-DSG_API_LIBRARY) if(OPENCV_VERSION STREQUAL "320") - ADD_LIBRARY(baseAlgorithm SHARED sourceCode/SG_baseFunc.cpp + ADD_LIBRARY(baseAlgorithm SHARED sourceCode/dataFitting.cpp + sourceCode/SG_baseFunc.cpp sourceCode/SG_clustering.cpp sourceCode/SG_featureGrow.cpp sourceCode/SG_lineFeature.cpp @@ -72,6 +73,10 @@ if(OPENCV_VERSION STREQUAL "320") ADD_LIBRARY(rodAndBarDetection SHARED sourceCode/rodAndBarDetection.cpp) ADD_LIBRARY(bagThreadPositioning SHARED sourceCode/bagThreadPositioning.cpp) + + ADD_LIBRARY(workpieceHolePositioning SHARED sourceCode/workpieceHolePositioning.cpp) + + # ADD_LIBRARY(motorStatorPosition SHARED sourceCode/motorStatorPosition.cpp) elseif(OPENCV_VERSION STREQUAL "480") ADD_LIBRARY(binocularMarkCam SHARED sourceCode/binocularMarkCam.cpp From c888554ed97035581db04dbcad8c18881043ea5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=B0=E4=BB=94?= Date: Thu, 16 Apr 2026 01:08:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=9B=98=E7=9A=84=E5=A7=BF=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 6 +++--- sourceCode/rodAndBarDetection.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f0c4a1..c56fbd7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,8 @@ SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -fpermissive -std=c++14 -fno-use-cxa-at #out path configure_file #设置库路径 -SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Arm/aarch64) -SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/bin) +SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/aarch64) +SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/aarch64/bin) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/VzNLSDK/Inc) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/eigen3) @@ -62,7 +62,7 @@ if(OPENCV_VERSION STREQUAL "320") 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) diff --git a/sourceCode/rodAndBarDetection.cpp b/sourceCode/rodAndBarDetection.cpp index b925adf..00fbd40 100644 --- a/sourceCode/rodAndBarDetection.cpp +++ b/sourceCode/rodAndBarDetection.cpp @@ -832,9 +832,9 @@ SSX_pointPoseInfo sx_getLocationPlatePose( } double center_z = (ptTop.z + ptBtm.z + ptLeft.z + ptRight.z) / 4; resultPose.center = { center_x, center_y, center_z }; - resultPose.normalDir = { 0, 0, -1.0 }; - resultPose.yDir = { 0, -1.0, 0 }; - resultPose.xDir = { 1.0, 0, 0 }; + resultPose.xDir = { 1.0, 0.0, 0 }; + resultPose.yDir = { 0.0, 1.0, 0 }; + resultPose.normalDir = { 0.0, 0.0, 1.0 }; //תȥ for (int i = 0; i < lineNum; i++) {