diff --git a/.gitignore b/.gitignore index 8be1abf..026150b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ *.aps *.user *.filters -**/build \ No newline at end of file +**/build +arm* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..106f703 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,60 @@ +#设置CMake支持的最低版本 +cmake_minimum_required(VERSION 3.5) +project(ZAlgo) + +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++") + +ADD_DEFINITIONS("-fPIC -O3") +ADD_DEFINITIONS("-fexceptions") +ADD_DEFINITIONS("-Wl,-Bsymbolic -lc -lm -Wunused-result") + +SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -fpermissive -std=c++14 -fno-use-cxa-atexit") + +#out path configure_file +#设置库路径 +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}/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 + ) + +ADD_LIBRARY(bagPositioning SHARED sourceCode/SG_bagPositioning.cpp) + +ADD_LIBRARY(lapWeldDetection SHARED sourceCode/SX_lapWeldDetection.cpp) + +ADD_LIBRARY(beltTearingDetection SHARED sourceCode/beltTearingDetection.cpp) + +ADD_LIBRARY(workpieceCornerExtraction SHARED sourceCode/BQ_workpieceCornerExtraction.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 executable file +# ADD_EXECUTABLE(bagPositioning_test bagPositioning_test/bagPositioning_test.cpp) + +# TARGET_LINK_LIBRARIES(bagPositioning_test + # bagPositioning + # ) diff --git a/bagPositioning/bagPositioning.vcxproj b/bagPositioning/bagPositioning.vcxproj index a874386..0f1d019 100644 --- a/bagPositioning/bagPositioning.vcxproj +++ b/bagPositioning/bagPositioning.vcxproj @@ -124,12 +124,11 @@ Level3 true - SG_API_LIBRARY;_DEBUG;BAGPOSITIONING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + SG_API_LIBRARY;_DEBUG;BAGPOSITIONING_EXPORTS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true NotUsing pch.h - ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories) - /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions) + ..\thirdParty\OpenCV320\include;%(AdditionalIncludeDirectories) Windows @@ -145,12 +144,11 @@ true true true - SG_API_LIBRARY;NDEBUG;BAGPOSITIONING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + SG_API_LIBRARY;NDEBUG;BAGPOSITIONING_EXPORTS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true NotUsing pch.h - ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories) - /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions) + ..\thirdParty\OpenCV320\include;%(AdditionalIncludeDirectories) Windows @@ -158,7 +156,7 @@ true true false - ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\build\x64\Release;%(AdditionalLibraryDirectories) + ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories) opencv_world320.lib;baseAlgorithm.lib;%(AdditionalDependencies) diff --git a/bagPositioning_test/bagPositioning_test.cpp b/bagPositioning_test/bagPositioning_test.cpp index 298a5d7..3258ec0 100644 --- a/bagPositioning_test/bagPositioning_test.cpp +++ b/bagPositioning_test/bagPositioning_test.cpp @@ -5,11 +5,14 @@ #include #include #include -#include "direct.h" #include #include "SG_bagPositioning_Export.h" #include +#ifdef _WIN32 #include +#include "direct.h" +#endif + typedef struct { diff --git a/baseAlgorithm/baseAlgorithm.vcxproj b/baseAlgorithm/baseAlgorithm.vcxproj index f6dddb0..11a0b7f 100644 --- a/baseAlgorithm/baseAlgorithm.vcxproj +++ b/baseAlgorithm/baseAlgorithm.vcxproj @@ -163,6 +163,7 @@ + diff --git a/sourceCode/BQ_workpieceCornerExtraction_Export.h b/sourceCode/BQ_workpieceCornerExtraction_Export.h index 3fb2841..9282e23 100644 --- a/sourceCode/BQ_workpieceCornerExtraction_Export.h +++ b/sourceCode/BQ_workpieceCornerExtraction_Export.h @@ -1,14 +1,7 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include -#include #define _OUTPUT_DEBUG_DATA 1 @@ -71,4 +64,4 @@ SG_APISHARED_EXPORT SSX_BQworkpieceResult sx_BQ_getWorkpieceCorners( #if _OUTPUT_DEBUG_DATA SSX_debugInfo* debug_conturs, #endif - int* errCode); \ No newline at end of file + int* errCode); diff --git a/sourceCode/SG_algo_Export.h b/sourceCode/SG_algo_Export.h new file mode 100644 index 0000000..2ab702e --- /dev/null +++ b/sourceCode/SG_algo_Export.h @@ -0,0 +1,22 @@ +#pragma once + +#if defined(_MSC_VER) || defined(WIN64) || defined(_WIN64) || defined(__WIN64__) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) +# define Q_DECL_EXPORT __declspec(dllexport) +# define Q_DECL_IMPORT __declspec(dllimport) +#else +# define Q_DECL_EXPORT __attribute__((visibility("default"))) +# define Q_DECL_IMPORT __attribute__((visibility("default"))) +#endif + +#if defined(SG_API_LIBRARY) +# define SG_APISHARED_EXPORT Q_DECL_EXPORT +#else +# define SG_APISHARED_EXPORT Q_DECL_IMPORT +#endif + +#include "SG_baseDataType.h" + + +#ifndef M_PI +#define M_PI 3.14159265358979323846 // pi +#endif // !M_PI diff --git a/sourceCode/SG_bagPositioning_Export.h b/sourceCode/SG_bagPositioning_Export.h index 979f5a3..6b63432 100644 --- a/sourceCode/SG_bagPositioning_Export.h +++ b/sourceCode/SG_bagPositioning_Export.h @@ -1,16 +1,10 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#define OUTPUT_DEBUG 1 +#define OUTPUT_DEBUG 0 #define BAG_ALGO_USE_CORNER_FEATURE 1 #define RGN_HIST_SIZE 16 //ĿɫͳƵĿ -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include typedef struct @@ -55,6 +49,7 @@ SG_APISHARED_EXPORT void sg_lineDataR( SVzNL3DLaserLine* a_line, const double* camPoseR, double groundH); + SG_APISHARED_EXPORT void sg_lineDataR_RGBD( SVzNLXYZRGBDLaserLine* a_line, const double* camPoseR, diff --git a/sourceCode/SG_baseAlgo_Export.h b/sourceCode/SG_baseAlgo_Export.h index c9b8c35..77683ed 100644 --- a/sourceCode/SG_baseAlgo_Export.h +++ b/sourceCode/SG_baseAlgo_Export.h @@ -1,12 +1,5 @@ #pragma once - -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include #include diff --git a/sourceCode/SG_baseFunc.cpp b/sourceCode/SG_baseFunc.cpp index c20dbe5..2a971d3 100644 --- a/sourceCode/SG_baseFunc.cpp +++ b/sourceCode/SG_baseFunc.cpp @@ -1,12 +1,15 @@ #include "SG_baseDataType.h" #include "SG_baseAlgo_Export.h" #include +#ifdef __WIN32 #include +#endif // __WIN32 + #include #include -//ɨROI SVzNL3DRangeD sg_getScanDataROI( +//ɨROI SVzNL3DLaserLine* laser3DPoints, int lineNum) { diff --git a/sourceCode/SG_clustering.cpp b/sourceCode/SG_clustering.cpp index d54727d..ac546bd 100644 --- a/sourceCode/SG_clustering.cpp +++ b/sourceCode/SG_clustering.cpp @@ -1,7 +1,9 @@ #include "SG_baseDataType.h" #include "SG_baseAlgo_Export.h" #include +#ifdef _WIN32 #include +#endif #include void _seedClustering( diff --git a/sourceCode/SX_lapWeldDetection_Export.h b/sourceCode/SX_lapWeldDetection_Export.h index d6570e6..55673c5 100644 --- a/sourceCode/SX_lapWeldDetection_Export.h +++ b/sourceCode/SX_lapWeldDetection_Export.h @@ -1,14 +1,7 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include -#include typedef enum { diff --git a/sourceCode/WD_particleSizeMeasure_Export.h b/sourceCode/WD_particleSizeMeasure_Export.h index 960b3dd..3f38a3f 100644 --- a/sourceCode/WD_particleSizeMeasure_Export.h +++ b/sourceCode/WD_particleSizeMeasure_Export.h @@ -1,14 +1,7 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include -#include #define OUTPUT_DEBUG 0 diff --git a/sourceCode/beltTearingDetection_Export.h b/sourceCode/beltTearingDetection_Export.h index 2645605..34b0391 100644 --- a/sourceCode/beltTearingDetection_Export.h +++ b/sourceCode/beltTearingDetection_Export.h @@ -1,12 +1,6 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define SG_APISHARED_EXPORT __declspec(dllexport) -#else -# define SG_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include #define ENABLE_CROSS_WISE_TEAR 0 diff --git a/sourceCode/binocularMarkCam_Export.h b/sourceCode/binocularMarkCam_Export.h index cb80557..926cdff 100644 --- a/sourceCode/binocularMarkCam_Export.h +++ b/sourceCode/binocularMarkCam_Export.h @@ -1,16 +1,9 @@ #pragma once -#if defined(SG_API_LIBRARY) -# define WD_APISHARED_EXPORT __declspec(dllexport) -#else -# define WD_APISHARED_EXPORT __declspec(dllimport) -#endif - -#include "SG_baseDataType.h" +#include "SG_algo_Export.h" #include #include - typedef struct { cv::Size patternSize; //3x3 mark @@ -25,11 +18,12 @@ typedef struct int boardIdInterval; //ÿMarkcharucoļһ0ʼڶ8ʼΪ8 int boardChaucoIDNum; //ÿMarkcharuco3x3charuco, άĸΪ4 }SWD_BQ_MarkBoardInfo; + //汾 -WD_APISHARED_EXPORT const char* wd_charuco3DMarkVersion(void); +SG_APISHARED_EXPORT const char* wd_charuco3DMarkVersion(void); //ȡMark3DϢ -WD_APISHARED_EXPORT void wd_BQ_getCharuco3DMark( +SG_APISHARED_EXPORT void wd_BQ_getCharuco3DMark( cv::Mat& leftImage, cv::Mat& rightImage, cv::Mat& cameraMatrixL,