Subversion Repositories seema-scanner

Rev

Rev 248 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 jakw 1
#------------------------------------------------------------
2
#
3
# SMScanner
4
#
9 jakw 5
# Control Interface and point cloud reconstruction interface
1 jakw 6
# for the SeeMa Lab Structured Light Scanner.
7
#
248 jakw 8
# Supported OS: Ubuntu 18.04
23 jakw 9
#
248 jakw 10
# Dependencies: Qt 5, OpenCV 3.x, PCL 1.8.1 and VTK 8 from ppa
1 jakw 11
#
248 jakw 12
# Image Analysis and Computer Graphics, DTU, 2018
167 jakw 13
#
1 jakw 14
#------------------------------------------------------------
15
 
27 jakw 16
QT += core gui testlib
1 jakw 17
 
18
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
19
 
20
TARGET = SMScanner
21
TEMPLATE = app
22
 
233 - 23
CONFIG += c++11
24
 
4 jakw 25
HEADERS  += SMScanner.h \
26
        SMVideoWidget.h \
27
        SMPointCloudWidget.h \
28
        camera/Camera.h \
29
        projector/Projector.h \
23 jakw 30
        projector/ProjectorOpenGL.h \
4 jakw 31
        projector/OpenGLContext.h \
32
        cvtools.h \
33
        SMCaptureWorker.h \
23 jakw 34
        rotationstage/RotationStage.h \
35
        SMPreferenceDialog.h \
24 jakw 36
        SMTypes.h \
159 jakw 37
        SMCalibrationWorker.h \
255 - 38
        SMExportWorker.h \
159 jakw 39
        #SMCalibrationWorkerArUco.h \
113 jakw 40
        SMCalibrationParameters.h \
41
        SMReconstructionWorker.h \
221 flgw 42
        #SMMeshingWorker.h \
113 jakw 43
        algorithm/Algorithm.h \
44
        algorithm/AlgorithmGrayCode.h \
123 jakw 45
        algorithm/AlgorithmGrayCodeHorzVert.h \
128 jakw 46
        algorithm/AlgorithmLineShift.h \
182 jakw 47
        algorithm/AlgorithmPhaseShiftThreeFreq.h \
135 jakw 48
        algorithm/AlgorithmPhaseShiftTwoFreq.h \
200 jakw 49
        algorithm/AlgorithmPhaseShiftTwoFreqHorzVert.h \
192 jakw 50
        algorithm/AlgorithmPhaseShiftEmbedded.h \
201 jakw 51
        algorithm/algorithmtools.h \
225 jakw 52
        SMVideoZoomWidget.h \
229 jakw 53
        SMLogDialog.h
1 jakw 54
 
55
SOURCES += main.cpp\
2 jakw 56
        SMScanner.cpp \
57
        SMVideoWidget.cpp \
4 jakw 58
        SMPointCloudWidget.cpp \
59
        camera/Camera.cpp \
23 jakw 60
        projector/ProjectorOpenGL.cpp \
4 jakw 61
        cvtools.cpp \
62
        SMCaptureWorker.cpp \
23 jakw 63
        rotationstage/RotationStage.cpp \
24 jakw 64
        SMPreferenceDialog.cpp \
159 jakw 65
        SMCalibrationWorker.cpp \
255 - 66
        SMExportWorker.cpp \
159 jakw 67
        #SMCalibrationWorkerArUco.cpp \
113 jakw 68
        SMCalibrationParameters.cpp \
69
        SMReconstructionWorker.cpp \
217 jakw 70
        #SMMeshingWorker.cpp \
113 jakw 71
        algorithm/AlgorithmGrayCode.cpp \
123 jakw 72
        algorithm/AlgorithmGrayCodeHorzVert.cpp \
128 jakw 73
        algorithm/AlgorithmLineShift.cpp \
162 raly 74
        algorithm/AlgorithmPhaseShiftThreeFreq.cpp \
192 jakw 75
        algorithm/AlgorithmPhaseShiftTwoFreq.cpp \
200 jakw 76
        algorithm/AlgorithmPhaseShiftTwoFreqHorzVert.cpp \
201 jakw 77
        algorithm/AlgorithmPhaseShiftEmbedded.cpp \
225 jakw 78
        SMVideoZoomWidget.cpp \
79
    SMLogDialog.cpp
1 jakw 80
 
4 jakw 81
FORMS    += SMScanner.ui \
113 jakw 82
        SMAboutDialog.ui \
225 jakw 83
        SMPreferenceDialog.ui \
84
    SMLogDialog.ui
2 jakw 85
 
41 jakw 86
INCLUDEPATH += camera/ projector/ algorithm/ triangulator/ rotationstage/ calibration/
2 jakw 87
 
88
 
4 jakw 89
# Operating System dependant linking and including
2 jakw 90
# Linux
91
unix:!macx {
92
    CONFIG += link_pkgconfig
248 jakw 93
 
94
    # OpenCV
95
    PKGCONFIG += opencv
96
    LIBS += -lopencv_ximgproc -lopencv_aruco
97
 
98
    # VTK 8
99
    INCLUDEPATH += /opt/vtk-opt/include/vtk-8.1
100
    LIBS += -L/opt/vtk-opt/lib -lvtkIOImage-8.1 -lvtkCommonExecutionModel-8.1 -lvtkCommonDataModel-8.1 -lvtkCommonMath-8.1 -lvtkCommonCore-8.1 -lvtkRenderingCore-8.1 -lvtkRenderingOpenGL2-8.1 -lvtkFiltersCore-8.1 -lvtkGUISupportQt-8.1
101
    QMAKE_RPATHDIR += /opt/vtk-opt/lib/
102
    QMAKE_RPATHLINKDIR += /opt/vtk-opt/lib
103
 
104
    # PCL
105
    INCLUDEPATH += /opt/pcl-opt/include/pcl-1.8
106
    LIBS += -lboost_system -L/opt/pcl-opt/lib -lpcl_visualization -lpcl_registration -lpcl_common -lpcl_features -lpcl_visualization -lpcl_io -lpcl_tracking -lpcl_filters -lpcl_sample_consensus -lpcl_surface -lpcl_search -lpcl_kdtree -lpcl_octree -lflann -lflann_cpp -lOpenNI -lOpenNI2
107
    #PKGCONFIG += pcl_common-1.8 pcl_visualization-1.8 pcl_search-1.8 pcl_filters-1.8 pcl_kdtree-1.8 pcl_tracking-1.8 pcl_tracking-1.8 pcl_sample_consensus-1.8 pcl_surface-1.8
108
    QMAKE_RPATHDIR += /opt/pcl-opt/lib/
109
    QMAKE_RPATHLINKDIR += /opt/pcl-opt/lib
110
 
111
    # Eigen
112
    PKGCONFIG += eigen3
113
 
196 jakw 114
    # Ceres
115
    CONFIG += c++11
217 jakw 116
    LIBS += -fopenmp # -ltbb -ltbbmalloc -ltbbmalloc_proxy
208 flgw 117
    LIBS += -lceres -lglog
118
    #LIBS += -lcholmod
231 jakw 119
    QMAKE_CXXFLAGS += -fopenmp
2 jakw 120
}
70 jakw 121
 
4 jakw 122
# Compile with system dependent OpenGL Context code
123
unix:!macx{
36 jakw 124
    SOURCES += projector/OpenGLContext.Xscreens.cpp
125
    LIBS += -lXxf86vm
248 jakw 126
 
127
    # OpenGL/X11
128
    PKGCONFIG += gl glu x11
2 jakw 129
}
130
 
8 jakw 131
# Compile with camera driver bindings
132
 
4 jakw 133
# Point Grey flycapture
134
unix:!macx:exists(/usr/include/flycapture/FlyCapture2.h){
135
    INCLUDEPATH += /usr/include/flycapture
136
    DEFINES += WITH_CAMERAPOINTGREY
137
    LIBS += -lflycapture
138
}
2 jakw 139
contains(DEFINES, WITH_CAMERAPOINTGREY) {
140
    HEADERS += camera/CameraPointGrey.h
141
    SOURCES += camera/CameraPointGrey.cpp
142
}
143
 
9 jakw 144
# Compile with rotation stage driver
145
SOURCES += rotationstage/ArcusPerformaxDriver.c
146
unix:!macx{
147
    PKGCONFIG += libusb-1.0
148
}