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,