Skip to content

Commit f338475

Browse files
committed
[feat] first commit
1 parent f02c0fa commit f338475

File tree

7 files changed

+23157
-0
lines changed

7 files changed

+23157
-0
lines changed

.vscode/c_cpp_properties.json

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "Linux",
5+
"includePath": [
6+
"${workspaceFolder}/**",
7+
"${workspaceFolder}/include",
8+
"${workspaceFolder}/global_stitching",
9+
"/usr/local/opencv-3.4.9/include",
10+
"/usr/local/include/eigen3",
11+
"C:\\workspace\\gitlab\\thirdpartyforwindows\\Boost\\boost_1_66_0_vs2015\\include",
12+
"C:\\workspace\\gitlab\\thirdpartyforwindows\\opencv\\build\\include"
13+
],
14+
"defines": [],
15+
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
16+
"cStandard": "gnu11",
17+
"cppStandard": "gnu++14",
18+
"intelliSenseMode": "msvc-x64"
19+
},
20+
{
21+
"name": "Win32",
22+
"includePath": [
23+
"${workspaceFolder}/**",
24+
"${workspaceFolder}/include",
25+
"D:\\thirdpartyforwindows\\opencv\\build\\include",
26+
"D:\\thirdpartyforwindows\\Boost\\boost_1_66_0\\include"
27+
],
28+
"defines": [
29+
"_DEBUG",
30+
"UNICODE",
31+
"_UNICODE"
32+
],
33+
"windowsSdkVersion": "10.0.17763.0",
34+
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
35+
"cStandard": "c11",
36+
"cppStandard": "c++11",
37+
"intelliSenseMode": "windows-msvc-x64",
38+
"compilerArgs": [],
39+
"intelliSenseModeIsExplicit": true,
40+
"cStandardIsExplicit": true,
41+
"cppStandardIsExplicit": true,
42+
"compilerPathIsExplicit": true,
43+
"browse": {
44+
"path": [
45+
"${workspaceFolder}/**",
46+
"${workspaceFolder}/include",
47+
"D:\\thirdpartyforwindows\\opencv\\build\\include"
48+
],
49+
"limitSymbolsToIncludedHeaders": true
50+
}
51+
}
52+
],
53+
"version": 4
54+
}

.vscode/settings.json

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
{
2+
"files.associations": {
3+
"cctype": "cpp",
4+
"clocale": "cpp",
5+
"cmath": "cpp",
6+
"cstdarg": "cpp",
7+
"cstddef": "cpp",
8+
"cstdio": "cpp",
9+
"cstdlib": "cpp",
10+
"cstring": "cpp",
11+
"cwchar": "cpp",
12+
"cwctype": "cpp",
13+
"array": "cpp",
14+
"atomic": "cpp",
15+
"*.tcc": "cpp",
16+
"complex": "cpp",
17+
"cstdint": "cpp",
18+
"deque": "cpp",
19+
"list": "cpp",
20+
"unordered_map": "cpp",
21+
"vector": "cpp",
22+
"exception": "cpp",
23+
"algorithm": "cpp",
24+
"functional": "cpp",
25+
"iterator": "cpp",
26+
"memory": "cpp",
27+
"memory_resource": "cpp",
28+
"optional": "cpp",
29+
"string": "cpp",
30+
"string_view": "cpp",
31+
"system_error": "cpp",
32+
"tuple": "cpp",
33+
"type_traits": "cpp",
34+
"utility": "cpp",
35+
"fstream": "cpp",
36+
"initializer_list": "cpp",
37+
"iosfwd": "cpp",
38+
"iostream": "cpp",
39+
"istream": "cpp",
40+
"limits": "cpp",
41+
"new": "cpp",
42+
"ostream": "cpp",
43+
"sstream": "cpp",
44+
"stdexcept": "cpp",
45+
"streambuf": "cpp",
46+
"typeinfo": "cpp",
47+
"ctime": "cpp",
48+
"chrono": "cpp",
49+
"condition_variable": "cpp",
50+
"map": "cpp",
51+
"ratio": "cpp",
52+
"mutex": "cpp",
53+
"thread": "cpp",
54+
"cinttypes": "cpp",
55+
"numeric": "cpp",
56+
"bitset": "cpp",
57+
"set": "cpp",
58+
"typeindex": "cpp",
59+
"strstream": "cpp",
60+
"random": "cpp",
61+
"iomanip": "cpp",
62+
"cfenv": "cpp",
63+
"valarray": "cpp",
64+
"forward_list": "cpp",
65+
"codecvt": "cpp",
66+
"filesystem": "cpp",
67+
"*.ipp": "cpp",
68+
"hash_map": "cpp",
69+
"hash_set": "cpp",
70+
"csignal": "cpp",
71+
"unordered_set": "cpp",
72+
"rope": "cpp",
73+
"slist": "cpp",
74+
"future": "cpp",
75+
"regex": "cpp",
76+
"ios": "cpp",
77+
"locale": "cpp",
78+
"queue": "cpp",
79+
"shared_mutex": "cpp",
80+
"stack": "cpp",
81+
"xthread": "cpp",
82+
"xfacet": "cpp",
83+
"xhash": "cpp",
84+
"xiosbase": "cpp",
85+
"xlocale": "cpp",
86+
"xlocbuf": "cpp",
87+
"xlocinfo": "cpp",
88+
"xlocmes": "cpp",
89+
"xlocmon": "cpp",
90+
"xlocnum": "cpp",
91+
"xloctime": "cpp",
92+
"xmemory": "cpp",
93+
"xmemory0": "cpp",
94+
"xstddef": "cpp",
95+
"xstring": "cpp",
96+
"xtr1common": "cpp",
97+
"xtree": "cpp",
98+
"xutility": "cpp"
99+
}
100+
}

CMakeLists.txt

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
cmake_minimum_required(VERSION 3.10)
2+
project(computervision)
3+
4+
#set(CMAKE_CXX_STANDARD 11)
5+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
6+
set(BUILD_DEPS "YES" CACHE BOOL "If YES, will install dependencies into sandbox. Automatically reset to NO after dependencies are installed.")
7+
set(PROJECT_OUTPUT_DIR ${PROJECT_BINARY_DIR})
8+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR}/bin) ## mkdir bin
9+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR}/lib) ## mkdir lib
10+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR}/lib)
11+
12+
# Build PDB file
13+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
14+
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
15+
16+
#set(Boost_LIBRARY_DIRS /usr/local/lib)
17+
#message("Opencv Found --opencv_version " ${OpenCV_VERSION})
18+
# g++ setting
19+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GNULINUX") #setting C++ compile
20+
set("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # using GCC
21+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -finline-limit=10000")
22+
if(CMAKE_COMPILER_IS_GNUCC)
23+
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
24+
if(GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
25+
message(STATUS "GCC Version >= 4.7")
26+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
27+
else()
28+
message(STATUS "GCC Version < 4.7")
29+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
30+
endif()
31+
endif()
32+
33+
# find package all required
34+
#---------WINDOWS---------
35+
IF (WIN32)
36+
## OpenCV
37+
set(OpenCV 3.4.9 $ENV{THIRD_PARTY}/opencv/)
38+
set(OpenCV_LIBS $ENV{THIRD_PARTY}/opencv/build/x64/vc15/lib)
39+
set(OpenCV_INCLUDE_DIRS $ENV{THIRD_PARTY}/opencv/build/include)
40+
include_directories( ${OpenCV_INCLUDE_DIRS} )
41+
link_directories (${OpenCV_LIBS})
42+
message("OpenCV_INCLUDE_DIRS : " ${OpenCV_INCLUDE_DIRS})
43+
message("OpenCV_LIBS : " ${OpenCV_LIBS})
44+
## BOOST
45+
set(BOOST_ROOT $ENV{THIRD_PARTY}/Boost/boost_1_66_0)
46+
set(BOOST_LIBS ${BOOST_ROOT}/lib)
47+
set(BOOST_INCLUDE_DIRS ${BOOST_ROOT}/include)
48+
include_directories( ${BOOST_INCLUDE_DIRS} )
49+
link_directories (${BOOST_LIBS})
50+
message("BOOST_INCLUDE_DIRS : " ${BOOST_INCLUDE_DIRS})
51+
message("BOOST_LIBS : " ${BOOST_LIBS})
52+
#---------Linux---------
53+
ELSE()
54+
## OpenCV
55+
find_package(OpenCV 3.4.9 REQUIRED)
56+
include_directories(${OpenCV_INCLUDE_DIRS})
57+
link_directories(${OpenCV_LIBRARY_DIRS})
58+
## BOOST
59+
find_package(Boost 1.55.0 COMPONENTS thread)
60+
include_directories(${Boost_INCLUDE_DIRS})
61+
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
62+
## Eigen
63+
#FIND_PACKAGE(Eigen3 REQUIRED)
64+
#include_directories(${EIGEN_INCLUDE_DIRS})
65+
#set(EIGEN_DIRECTORIES /home/ubuntu/workspace/eigen)
66+
#include_directories(${VLFEAT_DIRECTORIES})
67+
#message("vlfeat_include_path : " ${VLFEAT_DIRECTORIES})
68+
## vlfeat
69+
#set(VLFEAT_DIRECTORIES /home/ubuntu/workspace/vlfeat-0.9.20)
70+
#include_directories(${VLFEAT_DIRECTORIES})
71+
#message("vlfeat_include_path : " ${VLFEAT_DIRECTORIES})
72+
#FIND_LIBRARY(VLFEAT_LIBRARY
73+
#NAMES libvl.so
74+
#PATHS /home/ubuntu/workspace/vlfeat-0.9.20/bin/glnxa64
75+
#)
76+
ENDIF()
77+
78+
79+
## file to build
80+
81+
82+
# code
83+
include_directories(${CMAKE_SOURCE_DIR}/include) # ./include
84+
aux_source_directory(./src DIR_SRCS) # cpp
85+
86+
# output binary
87+
add_executable(${PROJECT_NAME} main.cpp ${DIR_SRCS} )
88+
# output so
89+
#add_library( ${PROJECT_NAME} SHARED ${SRC} )
90+
# link library
91+
92+
IF (WIN32)
93+
target_link_libraries(${PROJECT_NAME} opencv_world349.lib boost_system-vc141-mt-x64-1_66.lib libboost_filesystem-vc141-mt-x64-1_66.lib libboost_regex-vc141-mt-x64-1_66.lib)
94+
ELSE()
95+
target_link_libraries(${PROJECT_NAME} -lstdc++fs -lboost_system -lboost_filesystem -lboost_regex ${OpenCV_LIBS} ${Boost_LIBRARIES}) #libSpinnaker.so ${Boost_LIBRARIES} ${VLFEAT_LIBRARY} -lgomp
96+
ENDIF()

build/build.bat

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
git clean -fdx
2+
cmake ../ -G "Visual Studio 15 2017" -A x64
3+
cmake --build . --config Release
4+
5+
ECHO %THIRD_PARTY%
6+
COPY %THIRD_PARTY%\opencv\build\x64\vc15\bin\opencv_world349.dll %~dp0\bin\Release

include/common.h

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#ifndef _COMMON_H_
2+
#define _COMMON_H_
3+
4+
#include <cmath>
5+
#include <experimental/filesystem>
6+
#include <iostream>
7+
#include <string>
8+
#include <vector>
9+
10+
// opencv
11+
#include "opencv2/core.hpp"
12+
#include "opencv2/highgui.hpp"
13+
#include "opencv2/imgcodecs.hpp"
14+
#include "opencv2/imgproc.hpp"
15+
16+
// boost
17+
#include "boost/filesystem.hpp"
18+
#include "boost/regex.hpp"
19+
20+
// because c++ 11 don't have make_unique, so we make one by myself.
21+
template <typename T, typename... Args>
22+
static std::unique_ptr<T> make_unique(Args &&...args) {
23+
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
24+
}
25+
26+
#endif //_COMMON_H_

0 commit comments

Comments
 (0)