diff --git a/CMakeLists.txt b/CMakeLists.txt index 106f703..c56fbd7 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") @@ -16,45 +21,68 @@ 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(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/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/dataFitting.cpp + 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) + + 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) -# 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/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++) {