├── .DS_Store
├── .gitattributes
├── Binaryzation.cpp
├── Binaryzation.h
├── CVPlatform.pro
├── CVPlatform.pro.user
├── Debug
├── .DS_Store
└── debug
│ ├── .DS_Store
│ ├── Makefile
│ ├── Makefile.Debug
│ ├── Makefile.Release
│ ├── debug
│ ├── CVPlatform.exe
│ ├── CVPlatform.ilk
│ ├── CVPlatform.pdb
│ ├── cvplatform.vc.pdb
│ ├── main.obj
│ ├── mainwindow.obj
│ ├── moc_mainwindow.cpp
│ ├── moc_mainwindow.obj
│ ├── moc_processmodule.cpp
│ ├── moc_processmodule.obj
│ └── processmodule.obj
│ └── ui_mainwindow.h
├── FindContours.cpp
├── FindContours.h
├── Icon.icns
├── ImageEnhancement.cpp
├── ImageEnhancement.h
├── ImageMorphology.cpp
├── ImageMorphology.h
├── ImageOperation.cpp
├── ImageOperation.h
├── ImageOperator.cpp
├── ImageOperator.h
├── ImageSmoothing.cpp
├── ImageSmoothing.h
├── MainHeader.h
├── ProHeader.h
├── README.md
├── Release
├── .DS_Store
├── Makefile
├── Makefile.Debug
├── Makefile.Release
├── release
│ ├── CVPlatform.exe
│ ├── main.obj
│ ├── mainwindow.obj
│ ├── moc_mainwindow.cpp
│ ├── moc_mainwindow.obj
│ ├── moc_processmodule.cpp
│ ├── moc_processmodule.obj
│ └── processmodule.obj
└── ui_mainwindow.h
├── correction.cpp
├── correction.h
├── generate_moc.txt
├── main 2.cpp
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
├── moc_mainwindow.cpp
├── moc_processmodule.cpp
├── processmodule.cpp
├── processmodule.h
├── q2.cpp
├── q2.h
├── resources.qrc
├── resources
├── Code.txt
├── Code2.txt
├── Screen.jpg
├── icon.icns
└── srcpic.jpg
├── roi.cpp
├── roi.h
└── stdc++.h
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/.DS_Store
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Binaryzation.cpp:
--------------------------------------------------------------------------------
1 | #include"Binaryzation.h"
2 |
3 | void Threshold_s(const Mat& SrcImg,Mat& DstImg,const int Min,const int Max,const int mode)
4 | {
5 | if(SrcImg.channels()==3||SrcImg.channels()==4)
6 | {
7 | Mat SrcImgGray;
8 | cvtColor(SrcImg,SrcImgGray,COLOR_RGB2GRAY);
9 | threshold(SrcImgGray,DstImg,Min,Max,mode);
10 | }
11 | else
12 | threshold(SrcImg,DstImg,Min,Max,mode);
13 | }
14 |
--------------------------------------------------------------------------------
/Binaryzation.h:
--------------------------------------------------------------------------------
1 | #ifndef Binaryzation_h
2 | #define Binaryzation_h
3 |
4 | #include"ProHeader.h"
5 |
6 | void Threshold_s(const Mat& SrcImg,Mat& DstImg,const int Min,const int Max,const int mode);
7 |
8 | #endif
9 |
10 |
--------------------------------------------------------------------------------
/CVPlatform.pro:
--------------------------------------------------------------------------------
1 | #-------------------------------------------------
2 | #
3 | # Project created by QtCreator 2018-03-26T12:09:14
4 | #
5 | #-------------------------------------------------
6 |
7 | QT += core gui
8 |
9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
10 |
11 | TARGET = CVPlatform
12 | TEMPLATE = app
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any feature of Qt which as been marked as deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | # You can also make your code fail to compile if you use deprecated APIs.
21 | # In order to do so, uncomment the following line.
22 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
23 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
24 |
25 | ICON =Icon.icns
26 |
27 | SOURCES += main.cpp\
28 | Binaryzation.cpp \
29 | Correction.cpp \
30 | FindContours.cpp \
31 | ImageEnhancement.cpp \
32 | ImageMorphology.cpp \
33 | ImageOperation.cpp \
34 | ImageOperator.cpp \
35 | ImageSmoothing.cpp \
36 | mainwindow.cpp \
37 | processmodule.cpp \
38 | q2.cpp \
39 | roi.cpp
40 |
41 | HEADERS += mainwindow.h \
42 | Binaryzation.h \
43 | Correction.h \
44 | FindContours.h \
45 | ImageEnhancement.h \
46 | ImageMorphology.h \
47 | ImageOperation.h \
48 | ImageOperator.h \
49 | ImageSmoothing.h \
50 | MainHeader.h \
51 | ProHeader.h \
52 | processmodule.h \
53 | q2.h \
54 | roi.h \
55 | stdc++.h
56 |
57 | FORMS += mainwindow.ui
58 |
59 | #INCLUDEPATH += T:/opencv/build/include
60 | #INCLUDEPATH += /usr/local/Cellar/opencv/4.1.0_1/include/opencv4
61 | #INCLUDEPATH += /usr/local/Cellar/opencv/4.1.0_1/include/opencv4/opencv2
62 | INCLUDEPATH += E:\OpenCV-MinGW-Build-OpenCV-3.4.1\include
63 | INCLUDEPATH += E:\OpenCV-MinGW-Build-OpenCV-3.4.1\include\opencv
64 | INCLUDEPATH += E:\OpenCV-MinGW-Build-OpenCV-3.4.1\include\opencv2
65 | #win32:CONFIG(debug, debug|release): {
66 | #LIBS += -LT:/opencv/build/x86/vc12/lib \
67 | #-lopencv_core2410d \
68 | #-lopencv_imgproc2410d \
69 | #-lopencv_highgui2410d \
70 | #-lopencv_ml2410d \
71 | #-lopencv_video2410d \
72 | #-lopencv_features2d2410d \
73 | #-lopencv_calib3d2410d \
74 | #-lopencv_objdetect2410d \
75 | #-lopencv_contrib2410d \
76 | #-lopencv_legacy2410d \
77 | #-lopencv_flann2410d
78 |
79 | #} else:win32:CONFIG(release, debug|release): {
80 | #LIBS += -LT:/opencv/build/x86/vc12/lib \
81 | #-lopencv_core2410 \
82 | #-lopencv_imgproc2410 \
83 | #-lopencv_highgui2410 \
84 | #-lopencv_ml2410 \
85 | #-lopencv_video2410 \
86 | #-lopencv_features2d2410 \
87 | #-lopencv_calib3d2410 \
88 | #-lopencv_objdetect2410 \
89 | #-lopencv_contrib2410 \
90 | #-lopencv_legacy2410 \
91 | #-lopencv_flann2410 \
92 | #-lopencv_nonfree2410
93 | #}
94 | #LIBS += /usr/local/Cellar/opencv/4.1.0_1/lib/lib*
95 | LIBS +=E:\OpenCV-MinGW-Build-OpenCV-3.4.1\bin\lib*
96 | DISTFILES += \
97 | Code.txt \
98 | Screen.JPG
99 |
100 | RESOURCES += \
101 | resources.qrc
102 |
--------------------------------------------------------------------------------
/CVPlatform.pro.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | EnvironmentId
7 | {917cb788-e40c-48ec-b5a5-f3d4348757a7}
8 |
9 |
10 | ProjectExplorer.Project.ActiveTarget
11 | 0
12 |
13 |
14 | ProjectExplorer.Project.EditorSettings
15 |
16 | true
17 | false
18 | true
19 |
20 | Cpp
21 |
22 | CppGlobal
23 |
24 |
25 |
26 | QmlJS
27 |
28 | QmlJSGlobal
29 |
30 |
31 | 2
32 | UTF-8
33 | false
34 | 4
35 | false
36 | 80
37 | true
38 | true
39 | 1
40 | true
41 | false
42 | 0
43 | true
44 | true
45 | 0
46 | 8
47 | true
48 | 1
49 | true
50 | true
51 | true
52 | false
53 |
54 |
55 |
56 | ProjectExplorer.Project.PluginSettings
57 |
58 |
59 | -fno-delayed-template-parsing
60 |
61 | true
62 |
63 |
64 |
65 | ProjectExplorer.Project.Target.0
66 |
67 | Desktop Qt 5.12.3 MinGW 32-bit
68 | Desktop Qt 5.12.3 MinGW 32-bit
69 | qt.qt5.5123.win32_mingw73_kit
70 | 1
71 | 0
72 | 0
73 |
74 | E:/CVPlatform/build-CVPlatform-Desktop_Qt_5_12_3_MinGW_32_bit-Debug
75 |
76 |
77 | true
78 | qmake
79 |
80 | QtProjectManager.QMakeBuildStep
81 | true
82 |
83 | false
84 | false
85 | false
86 |
87 |
88 | true
89 | Make
90 |
91 | Qt4ProjectManager.MakeStep
92 |
93 | false
94 |
95 |
96 | false
97 |
98 | 2
99 | Build
100 |
101 | ProjectExplorer.BuildSteps.Build
102 |
103 |
104 |
105 | true
106 | Make
107 |
108 | Qt4ProjectManager.MakeStep
109 |
110 | true
111 | clean
112 |
113 | false
114 |
115 | 1
116 | Clean
117 |
118 | ProjectExplorer.BuildSteps.Clean
119 |
120 | 2
121 | false
122 |
123 | Debug
124 | Debug
125 | Qt4ProjectManager.Qt4BuildConfiguration
126 | 2
127 | true
128 |
129 |
130 | E:/CVPlatform/build-CVPlatform-Desktop_Qt_5_12_3_MinGW_32_bit-Release
131 |
132 |
133 | true
134 | qmake
135 |
136 | QtProjectManager.QMakeBuildStep
137 | false
138 |
139 | false
140 | false
141 | true
142 |
143 |
144 | true
145 | Make
146 |
147 | Qt4ProjectManager.MakeStep
148 |
149 | false
150 |
151 |
152 | false
153 |
154 | 2
155 | Build
156 |
157 | ProjectExplorer.BuildSteps.Build
158 |
159 |
160 |
161 | true
162 | Make
163 |
164 | Qt4ProjectManager.MakeStep
165 |
166 | true
167 | clean
168 |
169 | false
170 |
171 | 1
172 | Clean
173 |
174 | ProjectExplorer.BuildSteps.Clean
175 |
176 | 2
177 | false
178 |
179 | Release
180 | Release
181 | Qt4ProjectManager.Qt4BuildConfiguration
182 | 0
183 | true
184 |
185 |
186 | E:/CVPlatform/build-CVPlatform-Desktop_Qt_5_12_3_MinGW_32_bit-Profile
187 |
188 |
189 | true
190 | qmake
191 |
192 | QtProjectManager.QMakeBuildStep
193 | true
194 |
195 | false
196 | true
197 | true
198 |
199 |
200 | true
201 | Make
202 |
203 | Qt4ProjectManager.MakeStep
204 |
205 | false
206 |
207 |
208 | false
209 |
210 | 2
211 | Build
212 |
213 | ProjectExplorer.BuildSteps.Build
214 |
215 |
216 |
217 | true
218 | Make
219 |
220 | Qt4ProjectManager.MakeStep
221 |
222 | true
223 | clean
224 |
225 | false
226 |
227 | 1
228 | Clean
229 |
230 | ProjectExplorer.BuildSteps.Clean
231 |
232 | 2
233 | false
234 |
235 | Profile
236 | Profile
237 | Qt4ProjectManager.Qt4BuildConfiguration
238 | 0
239 | true
240 |
241 | 3
242 |
243 |
244 | 0
245 | 部署
246 |
247 | ProjectExplorer.BuildSteps.Deploy
248 |
249 | 1
250 | Deploy Configuration
251 |
252 | ProjectExplorer.DefaultDeployConfiguration
253 |
254 | 1
255 |
256 |
257 | dwarf
258 |
259 | cpu-cycles
260 |
261 |
262 | 250
263 | -F
264 | true
265 | 4096
266 | false
267 | false
268 | 1000
269 |
270 | true
271 |
272 | false
273 | false
274 | false
275 | false
276 | true
277 | 0.01
278 | 10
279 | true
280 | kcachegrind
281 | 1
282 | 25
283 |
284 | 1
285 | true
286 | false
287 | true
288 | valgrind
289 |
290 | 0
291 | 1
292 | 2
293 | 3
294 | 4
295 | 5
296 | 6
297 | 7
298 | 8
299 | 9
300 | 10
301 | 11
302 | 12
303 | 13
304 | 14
305 |
306 | 2
307 |
308 | CVPlatform
309 |
310 | Qt4ProjectManager.Qt4RunConfiguration:E:/CVPlatform/CVPlatform/CVPlatform.pro
311 |
312 | 3768
313 | false
314 | true
315 | true
316 | false
317 | false
318 | true
319 |
320 | E:/CVPlatform/build-CVPlatform-Desktop_Qt_5_12_3_MinGW_32_bit-Release
321 |
322 | 1
323 |
324 |
325 |
326 | ProjectExplorer.Project.TargetCount
327 | 1
328 |
329 |
330 | ProjectExplorer.Project.Updater.FileVersion
331 | 21
332 |
333 |
334 | Version
335 | 21
336 |
337 |
338 |
--------------------------------------------------------------------------------
/Debug/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/.DS_Store
--------------------------------------------------------------------------------
/Debug/debug/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/.DS_Store
--------------------------------------------------------------------------------
/Debug/debug/Makefile:
--------------------------------------------------------------------------------
1 | #############################################################################
2 | # Makefile for building: CVPlatform
3 | # Generated by qmake (3.0) (Qt 5.7.1)
4 | # Project: ..\..\CVPlatform.pro
5 | # Template: app
6 | # Command: C:\Qt\Qt5.7.1\5.7\msvc2013\bin\qmake.exe -spec win32-msvc2013 "CONFIG+=debug" "CONFIG+=qml_debug" -o Makefile ..\..\CVPlatform.pro
7 | #############################################################################
8 |
9 | MAKEFILE = Makefile
10 |
11 | first: debug
12 | install: debug-install
13 | uninstall: debug-uninstall
14 | QMAKE = C:\Qt\Qt5.7.1\5.7\msvc2013\bin\qmake.exe
15 | DEL_FILE = del
16 | CHK_DIR_EXISTS= if not exist
17 | MKDIR = mkdir
18 | COPY = copy /y
19 | COPY_FILE = copy /y
20 | COPY_DIR = xcopy /s /q /y /i
21 | INSTALL_FILE = copy /y
22 | INSTALL_PROGRAM = copy /y
23 | INSTALL_DIR = xcopy /s /q /y /i
24 | DEL_FILE = del
25 | SYMLINK = $(QMAKE) -install ln -f -s
26 | DEL_DIR = rmdir
27 | MOVE = move
28 | SUBTARGETS = \
29 | debug \
30 | release
31 |
32 |
33 | debug: FORCE
34 | @set MAKEFLAGS=$(MAKEFLAGS)
35 | $(MAKE) -f $(MAKEFILE).Debug
36 | debug-make_first: FORCE
37 | @set MAKEFLAGS=$(MAKEFLAGS)
38 | $(MAKE) -f $(MAKEFILE).Debug
39 | debug-all: FORCE
40 | @set MAKEFLAGS=$(MAKEFLAGS)
41 | $(MAKE) -f $(MAKEFILE).Debug all
42 | debug-clean: FORCE
43 | @set MAKEFLAGS=$(MAKEFLAGS)
44 | $(MAKE) -f $(MAKEFILE).Debug clean
45 | debug-distclean: FORCE
46 | @set MAKEFLAGS=$(MAKEFLAGS)
47 | $(MAKE) -f $(MAKEFILE).Debug distclean
48 | debug-install: FORCE
49 | @set MAKEFLAGS=$(MAKEFLAGS)
50 | $(MAKE) -f $(MAKEFILE).Debug install
51 | debug-uninstall: FORCE
52 | @set MAKEFLAGS=$(MAKEFLAGS)
53 | $(MAKE) -f $(MAKEFILE).Debug uninstall
54 | release: FORCE
55 | @set MAKEFLAGS=$(MAKEFLAGS)
56 | $(MAKE) -f $(MAKEFILE).Release
57 | release-make_first: FORCE
58 | @set MAKEFLAGS=$(MAKEFLAGS)
59 | $(MAKE) -f $(MAKEFILE).Release
60 | release-all: FORCE
61 | @set MAKEFLAGS=$(MAKEFLAGS)
62 | $(MAKE) -f $(MAKEFILE).Release all
63 | release-clean: FORCE
64 | @set MAKEFLAGS=$(MAKEFLAGS)
65 | $(MAKE) -f $(MAKEFILE).Release clean
66 | release-distclean: FORCE
67 | @set MAKEFLAGS=$(MAKEFLAGS)
68 | $(MAKE) -f $(MAKEFILE).Release distclean
69 | release-install: FORCE
70 | @set MAKEFLAGS=$(MAKEFLAGS)
71 | $(MAKE) -f $(MAKEFILE).Release install
72 | release-uninstall: FORCE
73 | @set MAKEFLAGS=$(MAKEFLAGS)
74 | $(MAKE) -f $(MAKEFILE).Release uninstall
75 |
76 | Makefile: ..\..\CVPlatform.pro C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_pre.prf \
77 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\angle.conf \
78 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-base.conf \
79 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-desktop.conf \
80 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\qconfig.pri \
81 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore.pri \
82 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore_private.pri \
83 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras.pri \
84 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras_private.pri \
85 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput.pri \
86 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput_private.pri \
87 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic.pri \
88 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic_private.pri \
89 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick.pri \
90 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick_private.pri \
91 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras.pri \
92 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras_private.pri \
93 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput.pri \
94 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput_private.pri \
95 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender.pri \
96 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender_private.pri \
97 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender.pri \
98 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender_private.pri \
99 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase.pri \
100 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase_private.pri \
101 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer.pri \
102 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer_private.pri \
103 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver.pri \
104 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver_private.pri \
105 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth.pri \
106 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth_private.pri \
107 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bootstrap_private.pri \
108 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_clucene_private.pri \
109 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent.pri \
110 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent_private.pri \
111 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core.pri \
112 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core_private.pri \
113 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus.pri \
114 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus_private.pri \
115 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer.pri \
116 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer_private.pri \
117 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designercomponents_private.pri \
118 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad.pri \
119 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad_private.pri \
120 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui.pri \
121 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui_private.pri \
122 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help.pri \
123 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help_private.pri \
124 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location.pri \
125 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location_private.pri \
126 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia.pri \
127 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia_private.pri \
128 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets.pri \
129 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets_private.pri \
130 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network.pri \
131 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network_private.pri \
132 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc.pri \
133 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc_private.pri \
134 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl.pri \
135 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl_private.pri \
136 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions.pri \
137 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions_private.pri \
138 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_packetprotocol_private.pri \
139 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_platformsupport_private.pri \
140 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning.pri \
141 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning_private.pri \
142 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport.pri \
143 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport_private.pri \
144 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing.pri \
145 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing_private.pri \
146 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml.pri \
147 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml_private.pri \
148 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldebug_private.pri \
149 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldevtools_private.pri \
150 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest.pri \
151 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest_private.pri \
152 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri \
153 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick.pri \
154 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick_private.pri \
155 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2.pri \
156 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2_private.pri \
157 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickparticles_private.pri \
158 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quicktemplates2_private.pri \
159 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets.pri \
160 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets_private.pri \
161 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script.pri \
162 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script_private.pri \
163 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools.pri \
164 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools_private.pri \
165 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml.pri \
166 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml_private.pri \
167 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors.pri \
168 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors_private.pri \
169 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus.pri \
170 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus_private.pri \
171 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport.pri \
172 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport_private.pri \
173 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql.pri \
174 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql_private.pri \
175 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg.pri \
176 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg_private.pri \
177 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib.pri \
178 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib_private.pri \
179 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uiplugin.pri \
180 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools.pri \
181 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools_private.pri \
182 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel.pri \
183 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel_private.pri \
184 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine.pri \
185 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine_private.pri \
186 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore.pri \
187 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore_private.pri \
188 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri \
189 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets.pri \
190 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets_private.pri \
191 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets.pri \
192 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets_private.pri \
193 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview.pri \
194 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview_private.pri \
195 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets.pri \
196 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets_private.pri \
197 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras.pri \
198 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras_private.pri \
199 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml.pri \
200 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml_private.pri \
201 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns.pri \
202 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns_private.pri \
203 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_zlib_private.pri \
204 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_functions.prf \
205 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_config.prf \
206 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\qt_config.prf \
207 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf \
208 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_post.prf \
209 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds.prf \
210 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\toolchain.prf \
211 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_pre.prf \
212 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\default_pre.prf \
213 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resolve_config.prf \
214 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds_post.prf \
215 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_post.prf \
216 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qml_debug.prf \
217 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\rtti.prf \
218 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\precompile_header.prf \
219 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\warn_on.prf \
220 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt.prf \
221 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resources.prf \
222 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\moc.prf \
223 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\opengl.prf \
224 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\uic.prf \
225 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\file_copies.prf \
226 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\windows.prf \
227 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\testcase_targets.prf \
228 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exceptions.prf \
229 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\yacc.prf \
230 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\lex.prf \
231 | ..\..\CVPlatform.pro \
232 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\qtmaind.prl \
233 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Widgets.prl \
234 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Gui.prl \
235 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Core.prl
236 | $(QMAKE) -spec win32-msvc2013 "CONFIG+=debug" "CONFIG+=qml_debug" -o Makefile ..\..\CVPlatform.pro
237 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_pre.prf:
238 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\angle.conf:
239 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-base.conf:
240 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-desktop.conf:
241 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\qconfig.pri:
242 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore.pri:
243 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore_private.pri:
244 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras.pri:
245 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras_private.pri:
246 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput.pri:
247 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput_private.pri:
248 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic.pri:
249 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic_private.pri:
250 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick.pri:
251 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick_private.pri:
252 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras.pri:
253 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras_private.pri:
254 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput.pri:
255 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput_private.pri:
256 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender.pri:
257 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender_private.pri:
258 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender.pri:
259 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender_private.pri:
260 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase.pri:
261 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase_private.pri:
262 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer.pri:
263 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer_private.pri:
264 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver.pri:
265 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver_private.pri:
266 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth.pri:
267 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth_private.pri:
268 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bootstrap_private.pri:
269 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_clucene_private.pri:
270 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent.pri:
271 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent_private.pri:
272 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core.pri:
273 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core_private.pri:
274 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus.pri:
275 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus_private.pri:
276 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer.pri:
277 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer_private.pri:
278 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designercomponents_private.pri:
279 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad.pri:
280 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad_private.pri:
281 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui.pri:
282 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui_private.pri:
283 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help.pri:
284 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help_private.pri:
285 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location.pri:
286 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location_private.pri:
287 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia.pri:
288 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia_private.pri:
289 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets.pri:
290 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets_private.pri:
291 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network.pri:
292 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network_private.pri:
293 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc.pri:
294 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc_private.pri:
295 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl.pri:
296 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl_private.pri:
297 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions.pri:
298 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions_private.pri:
299 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_packetprotocol_private.pri:
300 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_platformsupport_private.pri:
301 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning.pri:
302 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning_private.pri:
303 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport.pri:
304 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport_private.pri:
305 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing.pri:
306 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing_private.pri:
307 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml.pri:
308 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml_private.pri:
309 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldebug_private.pri:
310 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldevtools_private.pri:
311 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest.pri:
312 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest_private.pri:
313 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri:
314 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick.pri:
315 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick_private.pri:
316 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2.pri:
317 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2_private.pri:
318 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickparticles_private.pri:
319 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quicktemplates2_private.pri:
320 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets.pri:
321 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets_private.pri:
322 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script.pri:
323 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script_private.pri:
324 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools.pri:
325 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools_private.pri:
326 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml.pri:
327 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml_private.pri:
328 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors.pri:
329 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors_private.pri:
330 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus.pri:
331 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus_private.pri:
332 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport.pri:
333 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport_private.pri:
334 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql.pri:
335 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql_private.pri:
336 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg.pri:
337 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg_private.pri:
338 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib.pri:
339 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib_private.pri:
340 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uiplugin.pri:
341 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools.pri:
342 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools_private.pri:
343 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel.pri:
344 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel_private.pri:
345 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine.pri:
346 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine_private.pri:
347 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore.pri:
348 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore_private.pri:
349 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri:
350 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets.pri:
351 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets_private.pri:
352 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets.pri:
353 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets_private.pri:
354 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview.pri:
355 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview_private.pri:
356 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets.pri:
357 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets_private.pri:
358 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras.pri:
359 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras_private.pri:
360 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml.pri:
361 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml_private.pri:
362 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns.pri:
363 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns_private.pri:
364 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_zlib_private.pri:
365 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_functions.prf:
366 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_config.prf:
367 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\qt_config.prf:
368 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf:
369 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_post.prf:
370 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds.prf:
371 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\toolchain.prf:
372 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_pre.prf:
373 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\default_pre.prf:
374 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resolve_config.prf:
375 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds_post.prf:
376 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_post.prf:
377 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qml_debug.prf:
378 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\rtti.prf:
379 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\precompile_header.prf:
380 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\warn_on.prf:
381 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt.prf:
382 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resources.prf:
383 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\moc.prf:
384 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\opengl.prf:
385 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\uic.prf:
386 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\file_copies.prf:
387 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\windows.prf:
388 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\testcase_targets.prf:
389 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exceptions.prf:
390 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\yacc.prf:
391 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\lex.prf:
392 | ..\..\CVPlatform.pro:
393 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\qtmaind.prl:
394 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Widgets.prl:
395 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Gui.prl:
396 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Core.prl:
397 | qmake: FORCE
398 | @$(QMAKE) -spec win32-msvc2013 "CONFIG+=debug" "CONFIG+=qml_debug" -o Makefile ..\..\CVPlatform.pro
399 |
400 | qmake_all: FORCE
401 |
402 | make_first: debug-make_first release-make_first FORCE
403 | all: debug-all release-all FORCE
404 | clean: debug-clean release-clean FORCE
405 | -$(DEL_FILE) CVPlatform.exp
406 | -$(DEL_FILE) CVPlatform.vc.pdb
407 | -$(DEL_FILE) CVPlatform.ilk
408 | -$(DEL_FILE) CVPlatform.idb
409 | distclean: debug-distclean release-distclean FORCE
410 | -$(DEL_FILE) Makefile
411 | -$(DEL_FILE) CVPlatform.lib CVPlatform.pdb
412 |
413 | debug-mocclean:
414 | @set MAKEFLAGS=$(MAKEFLAGS)
415 | $(MAKE) -f $(MAKEFILE).Debug mocclean
416 | release-mocclean:
417 | @set MAKEFLAGS=$(MAKEFLAGS)
418 | $(MAKE) -f $(MAKEFILE).Release mocclean
419 | mocclean: debug-mocclean release-mocclean
420 |
421 | debug-mocables:
422 | @set MAKEFLAGS=$(MAKEFLAGS)
423 | $(MAKE) -f $(MAKEFILE).Debug mocables
424 | release-mocables:
425 | @set MAKEFLAGS=$(MAKEFLAGS)
426 | $(MAKE) -f $(MAKEFILE).Release mocables
427 | mocables: debug-mocables release-mocables
428 |
429 | check: first
430 |
431 | benchmark: first
432 | FORCE:
433 |
434 | $(MAKEFILE).Debug: Makefile
435 | $(MAKEFILE).Release: Makefile
436 |
--------------------------------------------------------------------------------
/Debug/debug/debug/CVPlatform.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/CVPlatform.exe
--------------------------------------------------------------------------------
/Debug/debug/debug/CVPlatform.ilk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/CVPlatform.ilk
--------------------------------------------------------------------------------
/Debug/debug/debug/CVPlatform.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/CVPlatform.pdb
--------------------------------------------------------------------------------
/Debug/debug/debug/cvplatform.vc.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/cvplatform.vc.pdb
--------------------------------------------------------------------------------
/Debug/debug/debug/main.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/main.obj
--------------------------------------------------------------------------------
/Debug/debug/debug/mainwindow.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/mainwindow.obj
--------------------------------------------------------------------------------
/Debug/debug/debug/moc_mainwindow.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'mainwindow.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "../../../mainwindow.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'mainwindow.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_MainWindow_t {
22 | QByteArrayData data[19];
23 | char stringdata0[219];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
33 | QT_MOC_LITERAL(1, 11, 11), // "openProcess"
34 | QT_MOC_LITERAL(2, 23, 0), // ""
35 | QT_MOC_LITERAL(3, 24, 10), // "newProcess"
36 | QT_MOC_LITERAL(4, 35, 11), // "saveProcess"
37 | QT_MOC_LITERAL(5, 47, 12), // "closeProcess"
38 | QT_MOC_LITERAL(6, 60, 12), // "startProcess"
39 | QT_MOC_LITERAL(7, 73, 15), // "showContextMenu"
40 | QT_MOC_LITERAL(8, 89, 5), // "point"
41 | QT_MOC_LITERAL(9, 95, 10), // "addProcess"
42 | QT_MOC_LITERAL(10, 106, 5), // "Index"
43 | QT_MOC_LITERAL(11, 112, 10), // "endProcess"
44 | QT_MOC_LITERAL(12, 123, 11), // "stopProcess"
45 | QT_MOC_LITERAL(13, 135, 12), // "gGetFilePath"
46 | QT_MOC_LITERAL(14, 148, 11), // "clickAction"
47 | QT_MOC_LITERAL(15, 160, 13), // "UpperCVAction"
48 | QT_MOC_LITERAL(16, 174, 14), // "DownerCVAction"
49 | QT_MOC_LITERAL(17, 189, 14), // "DeleteCVAction"
50 | QT_MOC_LITERAL(18, 204, 14) // "SetProCVAction"
51 |
52 | },
53 | "MainWindow\0openProcess\0\0newProcess\0"
54 | "saveProcess\0closeProcess\0startProcess\0"
55 | "showContextMenu\0point\0addProcess\0Index\0"
56 | "endProcess\0stopProcess\0gGetFilePath\0"
57 | "clickAction\0UpperCVAction\0DownerCVAction\0"
58 | "DeleteCVAction\0SetProCVAction"
59 | };
60 | #undef QT_MOC_LITERAL
61 |
62 | static const uint qt_meta_data_MainWindow[] = {
63 |
64 | // content:
65 | 7, // revision
66 | 0, // classname
67 | 0, 0, // classinfo
68 | 15, 14, // methods
69 | 0, 0, // properties
70 | 0, 0, // enums/sets
71 | 0, 0, // constructors
72 | 0, // flags
73 | 0, // signalCount
74 |
75 | // slots: name, argc, parameters, tag, flags
76 | 1, 0, 89, 2, 0x0a /* Public */,
77 | 3, 0, 90, 2, 0x0a /* Public */,
78 | 4, 0, 91, 2, 0x0a /* Public */,
79 | 5, 0, 92, 2, 0x0a /* Public */,
80 | 6, 0, 93, 2, 0x0a /* Public */,
81 | 7, 1, 94, 2, 0x0a /* Public */,
82 | 9, 1, 97, 2, 0x0a /* Public */,
83 | 11, 0, 100, 2, 0x0a /* Public */,
84 | 12, 0, 101, 2, 0x0a /* Public */,
85 | 13, 0, 102, 2, 0x0a /* Public */,
86 | 14, 1, 103, 2, 0x0a /* Public */,
87 | 15, 0, 106, 2, 0x0a /* Public */,
88 | 16, 0, 107, 2, 0x0a /* Public */,
89 | 17, 0, 108, 2, 0x0a /* Public */,
90 | 18, 0, 109, 2, 0x0a /* Public */,
91 |
92 | // slots: parameters
93 | QMetaType::Void,
94 | QMetaType::Void,
95 | QMetaType::Void,
96 | QMetaType::Void,
97 | QMetaType::Void,
98 | QMetaType::Void, QMetaType::QPoint, 8,
99 | QMetaType::Void, QMetaType::QModelIndex, 10,
100 | QMetaType::Void,
101 | QMetaType::Void,
102 | QMetaType::Void,
103 | QMetaType::Void, QMetaType::QModelIndex, 10,
104 | QMetaType::Void,
105 | QMetaType::Void,
106 | QMetaType::Void,
107 | QMetaType::Void,
108 |
109 | 0 // eod
110 | };
111 |
112 | void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
113 | {
114 | if (_c == QMetaObject::InvokeMetaMethod) {
115 | MainWindow *_t = static_cast(_o);
116 | Q_UNUSED(_t)
117 | switch (_id) {
118 | case 0: _t->openProcess(); break;
119 | case 1: _t->newProcess(); break;
120 | case 2: _t->saveProcess(); break;
121 | case 3: _t->closeProcess(); break;
122 | case 4: _t->startProcess(); break;
123 | case 5: _t->showContextMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
124 | case 6: _t->addProcess((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
125 | case 7: _t->endProcess(); break;
126 | case 8: _t->stopProcess(); break;
127 | case 9: _t->gGetFilePath(); break;
128 | case 10: _t->clickAction((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
129 | case 11: _t->UpperCVAction(); break;
130 | case 12: _t->DownerCVAction(); break;
131 | case 13: _t->DeleteCVAction(); break;
132 | case 14: _t->SetProCVAction(); break;
133 | default: ;
134 | }
135 | }
136 | }
137 |
138 | const QMetaObject MainWindow::staticMetaObject = {
139 | { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
140 | qt_meta_data_MainWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
141 | };
142 |
143 |
144 | const QMetaObject *MainWindow::metaObject() const
145 | {
146 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
147 | }
148 |
149 | void *MainWindow::qt_metacast(const char *_clname)
150 | {
151 | if (!_clname) return Q_NULLPTR;
152 | if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
153 | return static_cast(const_cast< MainWindow*>(this));
154 | return QMainWindow::qt_metacast(_clname);
155 | }
156 |
157 | int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
158 | {
159 | _id = QMainWindow::qt_metacall(_c, _id, _a);
160 | if (_id < 0)
161 | return _id;
162 | if (_c == QMetaObject::InvokeMetaMethod) {
163 | if (_id < 15)
164 | qt_static_metacall(this, _c, _id, _a);
165 | _id -= 15;
166 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
167 | if (_id < 15)
168 | *reinterpret_cast(_a[0]) = -1;
169 | _id -= 15;
170 | }
171 | return _id;
172 | }
173 | QT_END_MOC_NAMESPACE
174 |
--------------------------------------------------------------------------------
/Debug/debug/debug/moc_mainwindow.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/moc_mainwindow.obj
--------------------------------------------------------------------------------
/Debug/debug/debug/moc_processmodule.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'processmodule.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "../../../processmodule.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'processmodule.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_processmodule_t {
22 | QByteArrayData data[4];
23 | char stringdata0[48];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_processmodule_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_processmodule_t qt_meta_stringdata_processmodule = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 13), // "processmodule"
33 | QT_MOC_LITERAL(1, 14, 16), // "FinishProcessing"
34 | QT_MOC_LITERAL(2, 31, 0), // ""
35 | QT_MOC_LITERAL(3, 32, 15) // "BreakProcessing"
36 |
37 | },
38 | "processmodule\0FinishProcessing\0\0"
39 | "BreakProcessing"
40 | };
41 | #undef QT_MOC_LITERAL
42 |
43 | static const uint qt_meta_data_processmodule[] = {
44 |
45 | // content:
46 | 7, // revision
47 | 0, // classname
48 | 0, 0, // classinfo
49 | 2, 14, // methods
50 | 0, 0, // properties
51 | 0, 0, // enums/sets
52 | 0, 0, // constructors
53 | 0, // flags
54 | 2, // signalCount
55 |
56 | // signals: name, argc, parameters, tag, flags
57 | 1, 0, 24, 2, 0x06 /* Public */,
58 | 3, 0, 25, 2, 0x06 /* Public */,
59 |
60 | // signals: parameters
61 | QMetaType::Void,
62 | QMetaType::Void,
63 |
64 | 0 // eod
65 | };
66 |
67 | void processmodule::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
68 | {
69 | if (_c == QMetaObject::InvokeMetaMethod) {
70 | processmodule *_t = static_cast(_o);
71 | Q_UNUSED(_t)
72 | switch (_id) {
73 | case 0: _t->FinishProcessing(); break;
74 | case 1: _t->BreakProcessing(); break;
75 | default: ;
76 | }
77 | } else if (_c == QMetaObject::IndexOfMethod) {
78 | int *result = reinterpret_cast(_a[0]);
79 | void **func = reinterpret_cast(_a[1]);
80 | {
81 | typedef void (processmodule::*_t)();
82 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::FinishProcessing)) {
83 | *result = 0;
84 | return;
85 | }
86 | }
87 | {
88 | typedef void (processmodule::*_t)();
89 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::BreakProcessing)) {
90 | *result = 1;
91 | return;
92 | }
93 | }
94 | }
95 | Q_UNUSED(_a);
96 | }
97 |
98 | const QMetaObject processmodule::staticMetaObject = {
99 | { &QObject::staticMetaObject, qt_meta_stringdata_processmodule.data,
100 | qt_meta_data_processmodule, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
101 | };
102 |
103 |
104 | const QMetaObject *processmodule::metaObject() const
105 | {
106 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
107 | }
108 |
109 | void *processmodule::qt_metacast(const char *_clname)
110 | {
111 | if (!_clname) return Q_NULLPTR;
112 | if (!strcmp(_clname, qt_meta_stringdata_processmodule.stringdata0))
113 | return static_cast(const_cast< processmodule*>(this));
114 | return QObject::qt_metacast(_clname);
115 | }
116 |
117 | int processmodule::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
118 | {
119 | _id = QObject::qt_metacall(_c, _id, _a);
120 | if (_id < 0)
121 | return _id;
122 | if (_c == QMetaObject::InvokeMetaMethod) {
123 | if (_id < 2)
124 | qt_static_metacall(this, _c, _id, _a);
125 | _id -= 2;
126 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
127 | if (_id < 2)
128 | *reinterpret_cast(_a[0]) = -1;
129 | _id -= 2;
130 | }
131 | return _id;
132 | }
133 |
134 | // SIGNAL 0
135 | void processmodule::FinishProcessing()
136 | {
137 | QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
138 | }
139 |
140 | // SIGNAL 1
141 | void processmodule::BreakProcessing()
142 | {
143 | QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
144 | }
145 | QT_END_MOC_NAMESPACE
146 |
--------------------------------------------------------------------------------
/Debug/debug/debug/moc_processmodule.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/moc_processmodule.obj
--------------------------------------------------------------------------------
/Debug/debug/debug/processmodule.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Debug/debug/debug/processmodule.obj
--------------------------------------------------------------------------------
/Debug/debug/ui_mainwindow.h:
--------------------------------------------------------------------------------
1 | /********************************************************************************
2 | ** Form generated from reading UI file 'mainwindow.ui'
3 | **
4 | ** Created by: Qt User Interface Compiler version 5.7.1
5 | **
6 | ** WARNING! All changes made in this file will be lost when recompiling UI file!
7 | ********************************************************************************/
8 |
9 | #ifndef UI_MAINWINDOW_H
10 | #define UI_MAINWINDOW_H
11 |
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 |
22 | QT_BEGIN_NAMESPACE
23 |
24 | class Ui_MainWindow
25 | {
26 | public:
27 | QWidget *centralWidget;
28 | QMenuBar *menuBar;
29 | QStatusBar *statusBar;
30 |
31 | void setupUi(QMainWindow *MainWindow)
32 | {
33 | if (MainWindow->objectName().isEmpty())
34 | MainWindow->setObjectName(QStringLiteral("MainWindow"));
35 | MainWindow->resize(400, 300);
36 | centralWidget = new QWidget(MainWindow);
37 | centralWidget->setObjectName(QStringLiteral("centralWidget"));
38 | MainWindow->setCentralWidget(centralWidget);
39 | menuBar = new QMenuBar(MainWindow);
40 | menuBar->setObjectName(QStringLiteral("menuBar"));
41 | menuBar->setGeometry(QRect(0, 0, 400, 22));
42 | MainWindow->setMenuBar(menuBar);
43 | statusBar = new QStatusBar(MainWindow);
44 | statusBar->setObjectName(QStringLiteral("statusBar"));
45 | MainWindow->setStatusBar(statusBar);
46 |
47 | retranslateUi(MainWindow);
48 |
49 | QMetaObject::connectSlotsByName(MainWindow);
50 | } // setupUi
51 |
52 | void retranslateUi(QMainWindow *MainWindow)
53 | {
54 | MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR));
55 | } // retranslateUi
56 |
57 | };
58 |
59 | namespace Ui {
60 | class MainWindow: public Ui_MainWindow {};
61 | } // namespace Ui
62 |
63 | QT_END_NAMESPACE
64 |
65 | #endif // UI_MAINWINDOW_H
66 |
--------------------------------------------------------------------------------
/FindContours.cpp:
--------------------------------------------------------------------------------
1 | #include "FindContours.h"
2 |
3 | void Findcontours_s(const Mat &SrcImg, Mat &DstImg,const int RETR,const int CHAIN)
4 | {
5 | // RNG rng(12345);
6 | // Mat SrcImgGray;
7 | // vector> contours;
8 | // vector hierarchy;
9 | // vector > contourss;
10 | // //检测方式
11 | // //RETR_EXTERNAL:0:只检测最外围轮廓;RETR_LIST:1:检测所有的轮廓,轮廓之间独立;RETR_FLOODFILL:4:
12 | // //RETR_CCOMP:2:检测所有的轮廓,所有轮廓只建立两个等级关系;RETR_TREE:3:检测所有轮廓,所有轮廓建立一个等级树结构。
13 | // //链接方式
14 | // //CHAIN_APPROX_NONE:1: 保存物体边界上所有连续的轮廓点到contours向量内
15 | // //CHAIN_APPROX_SIMPLE:2: 仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours向量内,拐点与拐点之间直线段上的信息点不予保留
16 | // //CHAIN_APPROX_TC89_L1:3:,CHAIN_APPROX_TC89_KCOS:4:使用teh-Chinl chain 近似算法
17 | // cvtColor(SrcImg, SrcImgGray, COLOR_BGR2GRAY);
18 | // findContours(SrcImgGray, contours, hierarchy, RETR_TREE, CHAIN_APPROX_NONE);
19 | // DstImg = Mat::zeros(SrcImgGray.size(), CV_8UC3);
20 | // for (int i = 0; i < contours.size(); i++)
21 | // {
22 | // //Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
23 | // approxPolyDP(Mat(contours[i]), contourss[i], 3, true);
24 | // }
25 | // drawContours(DstImg,contourss, -1, Scalar(128,255,255),3, LINE_AA, hierarchy, std::abs(3) );
26 | // //DstImg=SrcImgGray.clone();
27 | Mat gray_src;
28 | if(SrcImg.channels()==3||SrcImg.channels()==4)
29 | cvtColor(SrcImg, gray_src, COLOR_BGR2GRAY);
30 | else
31 | gray_src=SrcImg.clone();
32 | Mat binary_output;
33 | vector> contours;
34 | vector hierachy;
35 | threshold(gray_src, binary_output, 100, 255, THRESH_OTSU);
36 | findContours(binary_output, contours, hierachy, RETR, CHAIN, Point(-1, -1));
37 |
38 | vector> contours_ploy(contours.size());
39 | vector ploy_rects(contours.size());
40 | vector ccs(contours.size());
41 | vector radius(contours.size());
42 |
43 | vector minRects(contours.size());
44 | vector myellipse(contours.size());
45 |
46 | for (size_t i = 0; i < contours.size(); i++)
47 | {
48 | approxPolyDP(Mat(contours[i]), contours_ploy[i], 3, true);
49 | ploy_rects[i] = boundingRect(contours_ploy[i]);
50 | minEnclosingCircle(contours_ploy[i], ccs[i], radius[i]);
51 | if (contours_ploy[i].size() > 5)
52 | {
53 | myellipse[i] = fitEllipse(contours_ploy[i]);
54 | minRects[i] = minAreaRect(contours_ploy[i]);
55 | }
56 | }
57 | RNG rng(12345);
58 | // draw it
59 | DstImg = SrcImg.clone();
60 | Point2f pts[4];
61 | for (size_t t = 0; t < contours.size(); t++)
62 | {
63 | Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
64 | //rectangle(drawImg, ploy_rects[t], color, 2, 8);
65 | //circle(drawImg, ccs[t], radius[t], color, 2, 8);
66 | if (contours_ploy[t].size() > 5)
67 | {
68 | ellipse(DstImg, myellipse[t], color, 1, 8);
69 | minRects[t].points(pts);
70 | for (int r = 0; r < 4; r++)
71 | {
72 | line(DstImg, pts[r], pts[(r + 1) % 4], color, 1, 8);
73 | }
74 | }
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/FindContours.h:
--------------------------------------------------------------------------------
1 | #ifndef FindContours_h
2 | #define FindContours_h
3 |
4 | #include "ProHeader.h"
5 | #include "ImageOperator.h"
6 |
7 | void Findcontours_s(const Mat &SrcImg, Mat &DetImg,const int RETR,const int CHAIN);
8 | #endif
9 |
--------------------------------------------------------------------------------
/Icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Icon.icns
--------------------------------------------------------------------------------
/ImageEnhancement.cpp:
--------------------------------------------------------------------------------
1 | #include "ImageEnhancement.h"
2 |
3 | void equalizeHist_s(const Mat &SrcImg, Mat &DstImg)
4 | {
5 | Mat SrcImgRGB[5];
6 | DstImg.create(SrcImg.size(), SrcImg.type());
7 | split(SrcImg, SrcImgRGB);
8 | for (int i = 0; i < SrcImg.channels(); i++)
9 | {
10 | equalizeHist(SrcImgRGB[i], SrcImgRGB[i]);
11 | }
12 | merge(SrcImgRGB, SrcImg.channels(), DstImg);
13 | }
14 |
15 | void Log(const Mat &SrcImg, Mat &DstImg, const double NumOfLog)
16 | {
17 | DstImg.create(SrcImg.size(), CV_32FC3);
18 | for (int i = 0; i < SrcImg.rows; i++)
19 | {
20 | for (int j = 0; j < SrcImg.cols; j++)
21 | {
22 | DstImg.at(i, j)[0] = log(NumOfLog + SrcImg.at(i, j)[0]);
23 | DstImg.at(i, j)[1] = log(NumOfLog + SrcImg.at(i, j)[1]);
24 | DstImg.at(i, j)[2] = log(NumOfLog + SrcImg.at(i, j)[2]);
25 | }
26 | }
27 | //归一化到0~255
28 | normalize(DstImg, DstImg, 0, 255, NORM_MINMAX);
29 | //转换成8bit图像显示
30 | convertScaleAbs(DstImg, DstImg);
31 | }
32 |
33 | void Gamma(const Mat &SrcImg, Mat &DstImg, const double gamma)
34 | {
35 | DstImg.create(SrcImg.size(), CV_32FC3);
36 | for (int i = 0; i < SrcImg.rows; i++)
37 | {
38 | for (int j = 0; j < SrcImg.cols; j++)
39 | {
40 | DstImg.at(i, j)[0] = pow(SrcImg.at(i, j)[0], gamma);
41 | DstImg.at(i, j)[1] = pow(SrcImg.at(i, j)[1], gamma);
42 | DstImg.at(i, j)[2] = pow(SrcImg.at(i, j)[2], gamma);
43 | }
44 | }
45 | //归一化到0~255
46 | normalize(DstImg, DstImg, 0, 255, NORM_MINMAX);
47 | //转换成8bit图像显示
48 | convertScaleAbs(DstImg, DstImg);
49 | }
50 | void equalizeHist_stretching(Mat SrcImg, Mat &DstImg)
51 | {
52 | double pR = 0.0;//斜率
53 | double pG = 0.0;//斜率
54 | double pB = 0.0;//斜率
55 | int minGrayDegree = 255;
56 | int maxGrayDegree = 0;
57 | int minGrayDegreeR = 255;
58 | int maxGrayDegreeR = 0;
59 | int minGrayDegreeG = 255;
60 | int maxGrayDegreeG = 0;
61 | int minGrayDegreeB = 255;
62 | int maxGrayDegreeB = 0;
63 | //Rectangle rt = new Rectangle(0, 0, dstBmp.Width, dstBmp.Height);
64 | //BitmapData bmpData = dstBmp.LockBits(rt, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
65 | //unsafe{
66 | for (int i = 0; i < SrcImg.rows; i++) {
67 | uchar* ptr = SrcImg.ptr(i);
68 | for (int j = 0; j < SrcImg.cols; j++) {
69 | if ((minGrayDegreeR > *(ptr + j * 3 + 2)) && SrcImg.channels()>=3)
70 | minGrayDegreeR = *(ptr + j * 3 + 2);
71 | if ((maxGrayDegreeR < *(ptr + j * 3 + 2)) && SrcImg.channels() >= 3)
72 | maxGrayDegreeR = *(ptr + j * 3 + 2);
73 | if ((minGrayDegreeG > *(ptr + j * 3 + 1)) && SrcImg.channels() >= 2)
74 | minGrayDegreeG = *(ptr + j * 3 + 1);
75 | if ((maxGrayDegreeG < *(ptr + j * 3 + 1)) && SrcImg.channels() >= 2)
76 | maxGrayDegreeG = *(ptr + j * 3 + 1);
77 | if (minGrayDegreeB > *(ptr + j * 3))
78 | minGrayDegreeB = *(ptr + j * 3);
79 | if (maxGrayDegreeB < *(ptr + j * 3))
80 | maxGrayDegreeB = *(ptr + j * 3);
81 | }
82 | }
83 | pR = 255.0 / (maxGrayDegreeR - minGrayDegreeR);
84 | pG = 255.0 / (maxGrayDegreeG - minGrayDegreeG);
85 | pB = 255.0 / (maxGrayDegreeB - minGrayDegreeB);
86 | for (int i = 0; i < SrcImg.rows; i++) {
87 | uchar* ptr1 = SrcImg.ptr(i);
88 | for (int j = 0; j < SrcImg.cols; j++) {
89 | *(ptr1 + j * 3) = (int)((*(ptr1 + j * 3) - minGrayDegreeB) * pB + 0.5);
90 | if(SrcImg.channels() >= 2)
91 | *(ptr1 + j * 3 + 1) = (int)((*(ptr1 + j * 3 + 1) - minGrayDegreeG) * pG + 0.5);
92 | if(SrcImg.channels() >= 3)
93 | *(ptr1 + j * 3 + 2) = (int)((*(ptr1 + j * 3 + 2) - minGrayDegreeR) * pR + 0.5);
94 | }
95 | }
96 | DstImg = SrcImg.clone();
97 | }
98 | void lut(const Mat &SrcImg,Mat &DstImg)
99 | {
100 | int n=SrcImg.channels();
101 | uchar lutData[256 * 5];
102 | int j = 0;
103 | for (int i = 0; i<256; i++)
104 | {
105 | if (i <= 100)
106 | {
107 | for (int j = 0; j < n; j++)
108 | {
109 | lutData[i*n+j] = 100;
110 | }
111 | }
112 | else if (i > 100 && i <= 200)
113 | {
114 | for (int j = 0; j < n; j++)
115 | {
116 | lutData[i*n + j] = 200;
117 | }
118 | }
119 | else
120 | {
121 | for (int j = 0; j < n; j++)
122 | {
123 | lutData[i*n + j] = 256;
124 | }
125 | }
126 |
127 | }
128 | Mat lut(1, 256, SrcImg.type(), lutData);
129 | LUT(SrcImg, lut, DstImg);
130 | }
131 | void ImageReverse(Mat &SrcImg, Mat &DstImg)
132 | {
133 | // cvtColor(SrcImg, SrcImg, COLOR_BGR2GRAY);
134 | DstImg = 255 - SrcImg;
135 | }
136 | void cvtColor_s(const Mat &SrcImg, Mat &DstImg)
137 | {
138 | if(SrcImg.channels()==3||SrcImg.channels()==4)
139 | cvtColor(SrcImg, DstImg, COLOR_BGR2GRAY);
140 | else
141 | DstImg=SrcImg.clone();
142 | }
143 | void applyColorMap_s(const Mat &SrcImg,Mat &DstImg,const int mode)
144 | {
145 | Mat SrcGray;
146 | cvtColor(SrcImg, SrcGray, COLOR_RGB2GRAY);
147 | applyColorMap(SrcGray, DstImg ,mode);
148 | }
149 | void unevenLightCompensate(Mat &image, Mat &DstImg,int blockSize)
150 | {
151 | DstImg = image.clone();
152 | if (DstImg.channels() == 3) cvtColor(DstImg, DstImg, 7);
153 | double average = mean(DstImg)[0];
154 | int rows_new = ceil(double(DstImg.rows) / double(blockSize));
155 | int cols_new = ceil(double(DstImg.cols) / double(blockSize));
156 | Mat blockImage;
157 | blockImage = Mat::zeros(rows_new, cols_new, CV_32FC1);
158 | for (int i = 0; i < rows_new; i++)
159 | {
160 | for (int j = 0; j < cols_new; j++)
161 | {
162 | int rowmin = i*blockSize;
163 | int rowmax = (i + 1)*blockSize;
164 | if (rowmax > DstImg.rows) rowmax = DstImg.rows;
165 | int colmin = j*blockSize;
166 | int colmax = (j + 1)*blockSize;
167 | if (colmax > DstImg.cols) colmax = DstImg.cols;
168 | Mat imageROI = DstImg(Range(rowmin, rowmax), Range(colmin, colmax));
169 | double temaver = mean(imageROI)[0];
170 | blockImage.at(i, j) = temaver;
171 | }
172 | }
173 | blockImage = blockImage - average;
174 | Mat blockImage2;
175 | resize(blockImage, blockImage2, DstImg.size(), (0, 0), (0, 0), INTER_CUBIC);
176 | Mat image2;
177 | DstImg.convertTo(image2, CV_32FC1);
178 | Mat dst = image2 - blockImage2;
179 | dst.convertTo(DstImg, CV_8UC1);
180 | }
181 |
--------------------------------------------------------------------------------
/ImageEnhancement.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageEnhancement_h
2 | #define ImageEnhancement_h
3 |
4 | #include "ProHeader.h"
5 | void equalizeHist_s(const Mat &SrcImg, Mat &DstImg);
6 | void Log(const Mat &SrcImg, Mat &DstImg,const double NumOfLog);
7 | void Gamma(const Mat &SrcImg, Mat &DstImg, const double gamma);
8 | void equalizeHist_stretching(Mat SrcImg, Mat &DstImg);
9 | void lut(const Mat &SrcImg,Mat &DstImg);
10 | void ImageReverse(Mat &SrcImg, Mat &DstImg);
11 | void cvtColor_s(const Mat &SrcImg, Mat &DstImg);
12 | void applyColorMap_s(const Mat &SrcImg,Mat &DstImg,const int mode);
13 | void unevenLightCompensate(Mat &image, Mat &DstImg,int blockSize);
14 | #endif
15 |
16 |
--------------------------------------------------------------------------------
/ImageMorphology.cpp:
--------------------------------------------------------------------------------
1 | #include "ImageMorphology.h"
2 | #include
3 | void Corrosion(Mat &SrcImg, Mat &DstImg, const int width, const int height, const int shape)
4 | {
5 | Mat element = getStructuringElement(shape, Size(width, height));
6 | erode(SrcImg, DstImg, element);
7 | }
8 | void Expanding(Mat &SrcImg, Mat &DstImg,const int width, const int height, const int shape)
9 | {
10 | Mat element = getStructuringElement(shape, Size(width, height));
11 | dilate(SrcImg, DstImg, element);
12 | }
13 | void Dis_Trans(Mat &SrcImg, Mat &DstImg, const int masksize)
14 | {
15 | cvtColor(SrcImg, SrcImg, COLOR_BGR2GRAY);
16 | GaussianBlur(SrcImg, SrcImg, Size(masksize, masksize), 2);
17 | threshold(SrcImg, SrcImg, 0, 255, THRESH_BINARY | THRESH_OTSU);
18 | distanceTransform(SrcImg, SrcImg, DIST_L2, masksize);
19 | DstImg = Mat::zeros(SrcImg.size(), CV_8UC1);
20 | float maxValue = 0;
21 | for (int i = 0; i < SrcImg.rows; i++)
22 | {
23 | for (int j = 0; j < SrcImg.cols; j++)
24 | {
25 | DstImg.at(i, j) = SrcImg.at(i, j);
26 | if (SrcImg.at(i, j) > maxValue)
27 | {
28 | maxValue = SrcImg.at(i, j); //获取距离变换的极大值
29 | }
30 | }
31 | }
32 | normalize(DstImg, DstImg, 0, 255, NORM_MINMAX);
33 | }
34 | void morphologyEx_s(const Mat &SrcImg, Mat &DstImg, int Width,int Height,int flag)
35 | {
36 | Mat SrcImgGray;
37 | if(SrcImg.channels()>=3)
38 | cvtColor(SrcImg, SrcImgGray, COLOR_RGB2GRAY);
39 | else
40 | SrcImgGray=SrcImg.clone();
41 | Mat element = getStructuringElement(MORPH_RECT, Size(Width, Height));
42 | if(flag==0)
43 | morphologyEx(SrcImgGray, DstImg, MORPH_OPEN, element);
44 | else if(flag==1)
45 | morphologyEx(SrcImgGray, DstImg, MORPH_CLOSE, element);
46 | else if(flag==2)
47 | morphologyEx(SrcImgGray, DstImg, MORPH_TOPHAT, element);
48 | else if(flag==3)
49 | morphologyEx(SrcImgGray, DstImg, MORPH_BLACKHAT, element);
50 | else
51 | morphologyEx(SrcImgGray, DstImg, MORPH_GRADIENT, element);
52 | }
53 |
54 | void horizontalProjectionMat(Mat srcImg,Mat &dstImg)//水平投影
55 | {
56 | if (srcImg.channels() >= 2)
57 | {
58 | cvtColor(srcImg, srcImg, COLOR_RGB2GRAY);
59 | }
60 | Mat binImg;
61 | blur(srcImg, binImg, Size(3, 3));
62 | threshold(binImg, binImg, 0, 255, THRESH_OTSU);
63 | int perPixelValue = 0;//每个像素的值
64 | int width = srcImg.cols;
65 | int height = srcImg.rows;
66 | int* projectValArry = new int[height];//创建一个储存每行白色像素个数的数组
67 | memset(projectValArry, 0, height * 4);//初始化数组
68 | for (int col = 0; col < height; col++)//遍历每个像素点
69 | {
70 | for (int row = 0; row < width; row++)
71 | {
72 | perPixelValue = binImg.at(col, row);
73 | if (perPixelValue == 0)//如果是白底黑字
74 | {
75 | projectValArry[col]++;
76 | }
77 | }
78 | }
79 | dstImg.create(height, width, CV_8UC1);//创建画布
80 | for (int i = 0; i < height; i++)
81 | {
82 | for (int j = 0; j < width; j++)
83 | {
84 | perPixelValue = 255;
85 | dstImg.at(i, j) = perPixelValue;//设置背景为白色
86 | }
87 | }
88 | for (int i = 0; i < height; i++)//水平直方图
89 | {
90 | for (int j = 0; j < projectValArry[i]; j++)
91 | {
92 | perPixelValue = 0;
93 | dstImg.at(i, width - 1 - j) = perPixelValue;//设置直方图为黑色
94 | }
95 | }
96 |
97 | }
98 | void verticalProjectionMat(Mat srcImg,Mat &dstImg)//垂直投影
99 | {
100 | if (srcImg.channels() >= 2)
101 | {
102 | cvtColor(srcImg, srcImg, COLOR_RGB2GRAY);
103 | }
104 | Mat binImg;
105 | blur(srcImg, binImg, Size(3, 3));
106 | threshold(binImg, binImg, 0, 255, THRESH_OTSU);
107 | int perPixelValue;//每个像素的值
108 | int width = srcImg.cols;
109 | int height = srcImg.rows;
110 | int* projectValArry = new int[width];//创建用于储存每列白色像素个数的数组
111 | memset(projectValArry, 0, width * 4);//初始化数组
112 | for (int col = 0; col < width; col++)
113 | {
114 | for (int row = 0; row < height; row++)
115 | {
116 | perPixelValue = binImg.at(row, col);
117 | if (perPixelValue == 0)//如果是白底黑字
118 | {
119 | projectValArry[col]++;
120 | }
121 | }
122 | }
123 | dstImg.create(height, width, CV_8UC1);//垂直投影的画布
124 | for (int i = 0; i < height; i++)
125 | {
126 | for (int j = 0; j < width; j++)
127 | {
128 | perPixelValue = 255; //背景设置为白色
129 | dstImg.at(i, j) = perPixelValue;
130 | }
131 | }
132 | for (int i = 0; i < width; i++)//垂直投影直方图
133 | {
134 | for (int j = 0; j < projectValArry[i]; j++)
135 | {
136 | perPixelValue = 0; //直方图设置为黑色
137 | dstImg.at(height - 1 - j, i) = perPixelValue;
138 | }
139 | }
140 | }
141 | void calcHist_s(const Mat &SrcImg,Mat &DstImg)
142 | {
143 | // 分割成3个单通道图像 ( R, G 和 B )
144 | vector rgb_planes;
145 | split(SrcImg, rgb_planes);
146 |
147 | // 设定bin数目
148 | int histSize = 255;
149 |
150 | // 设定取值范围 ( R,G,B) )
151 | float range[] = { 0, 255 };
152 | const float* histRange = { range };
153 |
154 | bool uniform = true; bool accumulate = false;
155 |
156 | Mat r_hist, g_hist, b_hist;
157 |
158 | // 计算直方图:
159 | calcHist(&rgb_planes[0], 1, 0, Mat(), r_hist, 1, &histSize, &histRange, uniform, accumulate);
160 | calcHist(&rgb_planes[1], 1, 0, Mat(), g_hist, 1, &histSize, &histRange, uniform, accumulate);
161 | calcHist(&rgb_planes[2], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate);
162 |
163 | // 创建直方图画布
164 | int hist_w = 400; int hist_h = 400;
165 | int bin_w = cvRound((double)hist_w / histSize);
166 |
167 | DstImg.create(hist_w, hist_h, CV_8UC3);
168 |
169 | // 将直方图归一化到范围 [ 0, histImage.rows ]
170 | normalize(r_hist, r_hist, 0, DstImg.rows, NORM_MINMAX, -1, Mat());
171 | normalize(g_hist, g_hist, 0, DstImg.rows, NORM_MINMAX, -1, Mat());
172 | normalize(b_hist, b_hist, 0, DstImg.rows, NORM_MINMAX, -1, Mat());
173 |
174 | // 在直方图画布上画出直方图
175 | for (int i = 1; i < histSize; i++)
176 | {
177 | line(DstImg, Point(bin_w*(i - 1), hist_h - cvRound(r_hist.at(i - 1))),
178 | Point(bin_w*(i), hist_h - cvRound(r_hist.at(i))),
179 | Scalar(0, 0, 255), 2, 8, 0);
180 | line(DstImg, Point(bin_w*(i - 1), hist_h - cvRound(g_hist.at(i - 1))),
181 | Point(bin_w*(i), hist_h - cvRound(g_hist.at(i))),
182 | Scalar(0, 255, 0), 2, 8, 0);
183 | line(DstImg, Point(bin_w*(i - 1), hist_h - cvRound(b_hist.at(i - 1))),
184 | Point(bin_w*(i), hist_h - cvRound(b_hist.at(i))),
185 | Scalar(255, 0, 0), 2, 8, 0);
186 | }
187 | }
188 | void HitOrMiss(const Mat &SrcImg, Mat &DstImg)
189 | {
190 | //Mat input_image = imread("d://timg.jpg", 2);
191 | /*imshow("Hit or Miss原图", input_image);
192 | Mat kernel1 = (Mat_(3, 3) <<
193 | 0, 1, 0,
194 | 1, -1, 1,
195 | 0, 1, 0);
196 | Mat kernel2 = (Mat_(3, 3) <<
197 | 0, 1, 0,
198 | 1, 0, 1,
199 | 0, 1, 0);
200 | Mat kernel3 = (Mat_(3, 3) <<
201 | 0, 0, 0,
202 | 0, 1, 0,
203 | 0, 0, 0);
204 | Mat output_image, output_image1, output_image2, output_image3, output_image4;
205 | Mat element = getStructuringElement(0, Size(3, 3), Point(-1, -1));
206 | erode(input_image, output_image3, element);
207 | imshow("腐蚀图", output_image3);
208 | morphologyEx(input_image, output_image1, MORPH_HITMISS, kernel3);
209 | morphologyEx(input_image, output_image2, MORPH_HITMISS, kernel2);
210 | morphologyEx(input_image, output_image, MORPH_HITMISS, kernel1);
211 | imshow("Hit or Miss0", output_image1);
212 | imshow("Hit or Miss1", output_image2);
213 | imshow("Hit or Miss", output_image);
214 | cv::absdiff(output_image1, output_image2, output_image4);
215 | cv::imshow("Hit or Miss2", output_image4);*/
216 | Mat SrcGray;
217 | if (SrcImg.channels() >= 3)
218 | cvtColor(SrcImg, SrcGray, COLOR_RGB2GRAY);
219 | else
220 | SrcGray = SrcImg.clone();
221 | Mat kernel1 = (Mat_(3, 3) <<
222 | 0, 1, 0,
223 | 1, -1, 1,
224 | 0, 1, 0);
225 | morphologyEx(SrcGray, DstImg, MORPH_HITMISS, kernel1);
226 | }
227 | void thinImage(const Mat & srcImg,Mat &dstImg)
228 | {
229 | Mat SrcGray;
230 | if(srcImg.channels()>=2)
231 | cvtColor(srcImg,SrcGray,COLOR_RGB2GRAY);
232 | else
233 | SrcGray=srcImg.clone();
234 | dstImg = SrcGray.clone();
235 | vector deleteList;
236 | int neighbourhood[9];
237 | int nl = srcImg.rows;
238 | int nc = srcImg.cols;
239 | bool inOddIterations = true;
240 | while (true) {
241 | for (int j = 1; j < (nl - 1); j++) {
242 | uchar* data_last = dstImg.ptr(j - 1);
243 | uchar* data = dstImg.ptr(j);
244 | uchar* data_next = dstImg.ptr(j + 1);
245 | for (int i = 1; i < (nc - 1); i++) {
246 | if (data[i] == 255) {
247 | int whitePointCount = 0;
248 | neighbourhood[0] = 1;
249 | if (data_last[i] == 255) neighbourhood[1] = 1;
250 | else neighbourhood[1] = 0;
251 | if (data_last[i + 1] == 255) neighbourhood[2] = 1;
252 | else neighbourhood[2] = 0;
253 | if (data[i + 1] == 255) neighbourhood[3] = 1;
254 | else neighbourhood[3] = 0;
255 | if (data_next[i + 1] == 255) neighbourhood[4] = 1;
256 | else neighbourhood[4] = 0;
257 | if (data_next[i] == 255) neighbourhood[5] = 1;
258 | else neighbourhood[5] = 0;
259 | if (data_next[i - 1] == 255) neighbourhood[6] = 1;
260 | else neighbourhood[6] = 0;
261 | if (data[i - 1] == 255) neighbourhood[7] = 1;
262 | else neighbourhood[7] = 0;
263 | if (data_last[i - 1] == 255) neighbourhood[8] = 1;
264 | else neighbourhood[8] = 0;
265 | for (int k = 1; k < 9; k++) {
266 | whitePointCount += neighbourhood[k];
267 | }
268 | if ((whitePointCount >= 2) && (whitePointCount <= 6)) {
269 | int ap = 0;
270 | if ((neighbourhood[1] == 0) && (neighbourhood[2] == 1)) ap++;
271 | if ((neighbourhood[2] == 0) && (neighbourhood[3] == 1)) ap++;
272 | if ((neighbourhood[3] == 0) && (neighbourhood[4] == 1)) ap++;
273 | if ((neighbourhood[4] == 0) && (neighbourhood[5] == 1)) ap++;
274 | if ((neighbourhood[5] == 0) && (neighbourhood[6] == 1)) ap++;
275 | if ((neighbourhood[6] == 0) && (neighbourhood[7] == 1)) ap++;
276 | if ((neighbourhood[7] == 0) && (neighbourhood[8] == 1)) ap++;
277 | if ((neighbourhood[8] == 0) && (neighbourhood[1] == 1)) ap++;
278 | if (ap == 1) {
279 | if (inOddIterations && (neighbourhood[3] * neighbourhood[5] * neighbourhood[7] == 0)
280 | && (neighbourhood[1] * neighbourhood[3] * neighbourhood[5] == 0)) {
281 | deleteList.push_back(Point(i, j));
282 | }
283 | else if (!inOddIterations && (neighbourhood[1] * neighbourhood[5] * neighbourhood[7] == 0)
284 | && (neighbourhood[1] * neighbourhood[3] * neighbourhood[7] == 0)) {
285 | deleteList.push_back(Point(i, j));
286 | }
287 | }
288 | }
289 | }
290 | }
291 | }
292 | if (deleteList.size() == 0)
293 | break;
294 | for (size_t i = 0; i < deleteList.size(); i++) {
295 | Point tem;
296 | tem = deleteList[i];
297 | uchar* data = dstImg.ptr(tem.y);
298 | data[tem.x] = 0;
299 | }
300 | deleteList.clear();
301 |
302 | inOddIterations = !inOddIterations;
303 | }
304 | }
305 |
--------------------------------------------------------------------------------
/ImageMorphology.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageMorphology_h
2 | #define ImageMorphology_h
3 |
4 | #include "ProHeader.h"
5 |
6 | void Corrosion(Mat &SrcImg, Mat &DstImg, const int width, const int height, const int shape);
7 | void Dis_Trans(Mat &SrcImg, Mat &DstImg, const int masksize);
8 | void Expanding(Mat &SrcImg, Mat &DstImg, const int width, const int height, const int shape);
9 | void morphologyEx_s(const Mat &SrcImg, Mat &DstImg, int Width,int Height,int flag);
10 | void horizontalProjectionMat(Mat srcImg,Mat &dstImg);
11 | void verticalProjectionMat(Mat srcImg,Mat &dstImg);
12 | void calcHist_s(const Mat &SrcImg,Mat &DstImg);
13 | void HitOrMiss(const Mat &SrcImg, Mat &DstImg);
14 | void thinImage(const Mat & srcImg,Mat &dstImg);
15 | #endif
16 |
--------------------------------------------------------------------------------
/ImageOperation.cpp:
--------------------------------------------------------------------------------
1 | #include "ImageOperation.h"
2 |
3 | void add(const Mat &SrcImg1,Mat &DstImg, const Mat &SrcImg2)
4 | {
5 | Mat SrcImg1RGB[5],SrcImg2RGB[5],DstImgRGB[5];
6 | for(int i=0;i= 2)
95 | cvtColor(SrcImg, SrcGray, COLOR_RGB2GRAY);
96 | else
97 | SrcGray = SrcImg.clone();
98 | int M = getOptimalDFTSize(SrcGray.rows);
99 | int N = getOptimalDFTSize(SrcGray.cols);
100 | Mat padded;
101 | copyMakeBorder(SrcGray, padded, 0, M - SrcGray.rows, 0, N - SrcGray.cols, BORDER_CONSTANT, Scalar::all(0));
102 | Mat planes[2] = { Mat_(padded), Mat::zeros(padded.size(), CV_32F) };
103 | Mat ImgDFT;
104 | merge(planes, 2, ImgDFT);
105 |
106 | dft(ImgDFT, ImgDFT);
107 | //正变换过后,先对频谱图进行中心平移
108 | ImgDFT = ImgDFT(Rect(0, 0, ImgDFT.cols & -2, ImgDFT.rows & -2));
109 |
110 | int cx = ImgDFT.cols / 2;
111 | int cy = ImgDFT.rows / 2;
112 | // rearrange the quadrants of Fourier image
113 | // so that the origin is at the image center
114 | Mat tmp;
115 | Mat q0(ImgDFT, Rect(0, 0, cx, cy));
116 | Mat q1(ImgDFT, Rect(cx, 0, cx, cy));
117 | Mat q2(ImgDFT, Rect(0, cy, cx, cy));
118 | Mat q3(ImgDFT, Rect(cx, cy, cx, cy));
119 | q0.copyTo(tmp);
120 | q3.copyTo(q0);
121 | tmp.copyTo(q3);
122 |
123 | q1.copyTo(tmp);
124 | q2.copyTo(q1);
125 | tmp.copyTo(q2);
126 | //将得到的频谱图分解成虚部和实部两部分
127 | split(ImgDFT, planes);
128 | Mat Proc_RE = planes[0];
129 | Mat Proc_IM = planes[1];
130 |
131 | /*******************************************************/
132 | //此处定义处理频谱的方法,实部和虚部要分开分别进行处理
133 | double ESP = 0.000001;
134 | for (int i = 0; i < Proc_RE.rows; ++i)
135 | for (int j = 0; j < Proc_RE.cols; ++j)
136 | {
137 | double dx = i - Proc_RE.rows / 2;
138 | double dy = j - Proc_RE.cols / 2;
139 | Proc_RE.at(i, j) = (1 - exp(-100 / (pow(dx, 2) + pow(dy, 2) + ESP)))* Proc_RE.at(i, j);
140 | Proc_IM.at(i, j) = (1 - exp(-100 / (pow(dx, 2) + pow(dy, 2) + ESP)))* Proc_IM.at(i, j);
141 | }
142 | /*******************************************************/
143 | //此处用于显示处理后的频谱图像(频谱为傅立叶变换的幅值,magnitude()函数可以直接求得),
144 | magnitude(planes[0], planes[1], DstImg);
145 | DstImg += Scalar::all(1);
146 | log(DstImg, DstImg);
147 | normalize(DstImg, DstImg, 0, 1, NORM_MINMAX);
148 | }
149 |
--------------------------------------------------------------------------------
/ImageOperation.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageOperation_h
2 | #define ImageOperation_h
3 |
4 | #include "ProHeader.h"
5 |
6 | void add(const Mat &SrcImg1,Mat &DstImg, const Mat &SrcImg2);
7 | void sub(const Mat &SrcImg1,Mat &DstImg, const Mat &SrcImg2);
8 | void Intersection(const Mat &SrcImg1,Mat &DstImg, const Mat &SrcImg2);
9 | void Union(const Mat &SrcImg1,Mat &DstImg, const Mat &SrcImg2);
10 | void Complement(const Mat &SrcImg, Mat &DstImg);
11 | void Distinction(const Mat &SrcImg1, Mat &DstImg,const Mat &SrcImg2);
12 | void ExposureAdjustment(const Mat &SrcImg, Mat &DstImg, const int n); //n:曝光系数
13 | void dft_s(const Mat &SrcImg, Mat &DstImg);
14 | #endif
15 |
--------------------------------------------------------------------------------
/ImageOperator.cpp:
--------------------------------------------------------------------------------
1 | #include "ImageOperator.h"
2 |
3 | void Laplacian_s(const Mat &SrcImg, Mat &DstImg, const int KernelSize)
4 | {
5 | GaussianBlur(SrcImg, SrcImg, Size(KernelSize, KernelSize), 0, 0, BORDER_DEFAULT);
6 | Laplacian(SrcImg, DstImg, CV_64F, KernelSize);
7 | convertScaleAbs(DstImg, DstImg);
8 | }
9 |
10 | void Canny_s(const Mat &SrcImg, Mat &DstImg, const int apertureSize, const double threshold1, const double threshold2)
11 | {
12 | blur(SrcImg, SrcImg, Size(apertureSize, apertureSize));
13 | Canny(SrcImg, DstImg, threshold1, threshold2, apertureSize);
14 | }
15 | void Sobel_s(const Mat &SrcImg, Mat &DstImg, const int KernelSize, const double scale, const int BorderMode) //scale:缩放因子=1不缩放
16 | {
17 | Mat Src_x, Src_y;
18 | GaussianBlur(SrcImg, SrcImg, Size(KernelSize, KernelSize), 0, 0, BORDER_DEFAULT);
19 | Sobel(SrcImg, Src_x, CV_16S, 1, 0, KernelSize, scale, 1, BorderMode);
20 | convertScaleAbs(Src_x, Src_x);
21 | Sobel(SrcImg, Src_y, CV_16S, 0, 1, KernelSize, scale, 1, BorderMode);
22 | convertScaleAbs(Src_y, Src_y);
23 | addWeighted(Src_x, 0.5, Src_y, 0.5, 0, DstImg);
24 | }
25 |
26 | void Scharr_s(const Mat &SrcImg, Mat &DstImg, const double scale, const int BorderMode)
27 | {
28 | Mat Src_x, Src_y;
29 | Scharr(SrcImg, Src_x, CV_16S, 0, 1, scale, BorderMode);
30 | convertScaleAbs(Src_x, Src_x);
31 | Scharr(SrcImg, Src_y, CV_16S, 1, 0, scale, BorderMode);
32 | convertScaleAbs(Src_y, Src_y);
33 | addWeighted(Src_x, 0.5, Src_y, 0.5, 0, DstImg);
34 | }
35 | void prewitt_s(const Mat &SrcImg, Mat &DstImg)
36 | {
37 | Mat Kernelx, Kernely;
38 | Mat SrcGray;
39 | cvtColor(SrcImg, SrcGray, COLOR_RGB2GRAY);
40 |
41 | Kernelx = (Mat_(3, 3) << 1, 1, 1, 0, 0, 0, -1, -1, -1);
42 | Kernely = (Mat_(3, 3) << -1, 0, 1, -1, 0, 1, -1, 0, 1);
43 |
44 | Mat grad_x, grad_y;
45 | Mat abs_grad_x, abs_grad_y;
46 |
47 | filter2D(SrcGray, grad_x, CV_16S, Kernelx, Point(-1, -1));
48 | filter2D(SrcGray, grad_y, CV_16S, Kernely, Point(-1, -1));
49 | convertScaleAbs(grad_x, abs_grad_x);
50 | convertScaleAbs(grad_y, abs_grad_y);
51 |
52 | addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, DstImg);
53 | }
54 | void robot_s(const Mat &SrcImg, Mat &DstImg)
55 | {
56 | Mat Kernelx, Kernely;
57 | Mat SrcGray;
58 | cvtColor(SrcImg, SrcGray, COLOR_RGB2GRAY);
59 |
60 | Kernelx = (Mat_(2, 2) << 1,0,0,-1);
61 | Kernely = (Mat_(2, 2) << 0,1,-1,0);
62 |
63 | Mat grad_x, grad_y;
64 | Mat abs_grad_x, abs_grad_y;
65 |
66 | filter2D(SrcGray, grad_x, CV_16S, Kernelx, Point(-1, -1));
67 | filter2D(SrcGray, grad_y, CV_16S, Kernely, Point(-1, -1));
68 | convertScaleAbs(grad_x, abs_grad_x);
69 | convertScaleAbs(grad_y, abs_grad_y);
70 |
71 | addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, DstImg);
72 | }
73 |
--------------------------------------------------------------------------------
/ImageOperator.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageOperator_h
2 | #define ImageOperator_h
3 |
4 | #include "ProHeader.h"
5 |
6 | void Laplacian_s(const Mat &SrcImg, Mat &DstImg, const int KernelSize);
7 | void Canny_s(const Mat &SrcImg, Mat &DstImg, const int apertureSize, const double threshold1, const double threshold2);
8 | void Sobel_s(const Mat &SrcImg, Mat &DstImg, const int KernelSize, const double scale, const int BorderMode); //scale:缩放因子=1不缩放
9 | void Scharr_s(const Mat &SrcImg, Mat &DstImg, const double scale, const int BorderMode);
10 | void prewitt_s(const Mat &SrcImg, Mat &DstImg);
11 | void robot_s(const Mat &SrcImg, Mat &DstImg);
12 | #endif
13 |
--------------------------------------------------------------------------------
/ImageSmoothing.cpp:
--------------------------------------------------------------------------------
1 | #include "ImageSmoothing.h"
2 |
3 | void BoxFilter(const Mat &SrcImg, Mat &DstImg,const int kernel)
4 | {
5 | boxFilter(SrcImg, DstImg, -1, Size(kernel, kernel));
6 | }
7 | void blur_s(const Mat &SrcImg,Mat &DstImg,const int kernel)
8 | {
9 | blur(SrcImg,DstImg,Size(kernel,kernel));
10 | }
11 | void MedianFiltering(const Mat &SrcImg, Mat &DstImg,const int kernel)
12 | {
13 | medianBlur(SrcImg, DstImg, kernel);
14 | }
15 | void GaussianFiltering(const Mat &SrcImg, Mat &DstImg,const int kernel)
16 | {
17 | GaussianBlur(SrcImg, DstImg, Size(kernel, kernel), 0);
18 | }
19 |
20 |
21 | //void BilateralFiltering(const Mat &SrcImg, Mat &DstImg)
22 | //{
23 | // bilateralFilter(SrcImg, DstImg, 9, 70, 70);
24 | //}
25 |
--------------------------------------------------------------------------------
/ImageSmoothing.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageSmoothing_h
2 | #define ImageSmoothing_h
3 |
4 | #include "ProHeader.h"
5 |
6 | void BoxFilter(const Mat &SrcImg, Mat &DstImg,const int kernel);
7 | void MedianFiltering(const Mat &SrcImg, Mat &DstImg,const int kernel);
8 | void GaussianFiltering(const Mat &SrcImg, Mat &DstImg,const int kernel);
9 | void blur_s(const Mat &SrcImg,Mat &DstImg,const int kernel);
10 | //void BilateralFiltering(Mat &SrcImg, Mat &DstImg);
11 |
12 | #endif
13 |
--------------------------------------------------------------------------------
/MainHeader.h:
--------------------------------------------------------------------------------
1 | //
2 | // AllHeader.h
3 | // FaceDetection
4 | //
5 | // Created by Markfound on 2019/5/3.
6 | // Copyright © 2019年 Markfound. All rights reserved.
7 | //
8 |
9 | #ifndef MainHeader_h
10 | #define MainHeader_h
11 |
12 | #include "ProHeader.h"
13 | #include "Binaryzation.h"
14 | #include "ImageOperator.h"
15 | #include "ImageSmoothing.h"
16 | #include "ImageMorphology.h"
17 | #include "ImageOperation.h"
18 | #include "FindContours.h"
19 | #include "Correction.h"
20 | #include "ImageEnhancement.h"
21 | #include "roi.h"
22 | #endif /* AllHeader_h */
23 |
--------------------------------------------------------------------------------
/ProHeader.h:
--------------------------------------------------------------------------------
1 | #ifndef ProHeader_h
2 | #define ProHeader_h
3 |
4 | #include "stdc++.h"
5 |
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | using namespace cv;
12 | using namespace std;
13 |
14 |
15 | #endif
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 2019.05.01 V1.0:
2 | [新增]Mac OS 版本发布!
3 | [新增]基本框架部署完成。
4 |
5 | 2019.05.08 V1.1:
6 | [新增]新增图像二值化、图像运算、图像平滑、膨胀腐蚀、距离变换功能。
7 | [修复]修复部分图像通道不兼容导致程序崩溃的问题。
8 |
9 | 2019.05.14 V1.2:
10 | [新增]支持导出cpp源码,直接本地运行。
11 |
12 | 2019.05.24 V1.3:
13 | [优化]重写框架核心,精简大量无用代码,提升程序运行效率。
14 | [新增]新增轮廓绘制、图像锐化、图像增强功能。
15 | [优化]进一步优化程序稳定性。
16 |
17 | 2019.05.26 V1.4:
18 | [修复]修复函数不兼容导致程序崩溃问题,提升程序稳定性。
19 | [修复]修复cpp源码导出错误的问题。
20 | [优化]精简部分代码。
21 |
22 | 2019.06.13 V2.0:
23 | [优化]优化代码结构。
24 | [新增]新增大量功能如下:
25 | 1. 畸变矫正
26 | a) 透视变换
27 | b) 仿射变换
28 | c) 几何变换
29 | i. 放大
30 | ii. 缩小
31 | iii. 旋转
32 | iv. 镜像
33 | v. 错切
34 | vi. 平移
35 | 2. ROI
36 | a) 正矩形
37 | b) 旋转矩形
38 | c) 环形
39 | d) 圆形
40 | e) 扇形
41 | f) 多边形
42 | 3. 预处理
43 | a) 去噪
44 | i. 高斯
45 | ii. 中值
46 | iii. 均值
47 | b) 边缘检测
48 | i. Canny
49 | ii. Sobel
50 | iii. Robot
51 | iv. Laplace
52 | v. Prewitt
53 | c) 亮度增强
54 | i. Log
55 | ii. Gamma
56 | iii. 直方图均衡化
57 | iv. 直方图拉伸
58 | v. 锐化
59 | vi. LUT
60 | vii. 取反
61 | viii. 彩色转灰度
62 | ix. 伪彩色
63 | d) 补偿
64 | i. 自熵
65 | ii. 光照不均匀补偿
66 | e) 形态学 (灰度)
67 | i. 腐蚀
68 | ii. 膨胀
69 | iii. 开运算
70 | iv. 闭运算
71 | v. 顶帽
72 | vi. 底帽
73 | vii. 梯度
74 | f) 二值化
75 | i. 全局二值化
76 | ii. 固定阈值
77 | iii. OTSU
78 | iv. 直方图迭代
79 | v. 局部二值化
80 | vi. 自适应二值化
81 | vii. 局部OTSU
82 | viii. 双阈值(全局,局部)
83 | g) 频域处理(FFT)
84 | h) 投影 (水平,垂直)
85 | i) Profile(水平,垂直)
86 | j) 直方图
87 | 4. 分割
88 | a) 高低阈值
89 | b) 形态学 (二值化)
90 | i. 腐蚀
91 | ii. 膨胀
92 | iii. 开运算
93 | iv. 闭运算
94 | v. 顶帽
95 | vi. 底帽
96 | vii. 梯度
97 | viii. 击中击不中
98 | x. 骨骼化
99 |
100 |
101 | 技术支持:739851970@qq.com
102 | By:Markfound
103 |
--------------------------------------------------------------------------------
/Release/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/.DS_Store
--------------------------------------------------------------------------------
/Release/Makefile:
--------------------------------------------------------------------------------
1 | #############################################################################
2 | # Makefile for building: CVPlatform
3 | # Generated by qmake (3.0) (Qt 5.7.1)
4 | # Project: ..\CVPlatform.pro
5 | # Template: app
6 | # Command: C:\Qt\Qt5.7.1\5.7\msvc2013\bin\qmake.exe -spec win32-msvc2013 -o Makefile ..\CVPlatform.pro
7 | #############################################################################
8 |
9 | MAKEFILE = Makefile
10 |
11 | first: release
12 | install: release-install
13 | uninstall: release-uninstall
14 | QMAKE = C:\Qt\Qt5.7.1\5.7\msvc2013\bin\qmake.exe
15 | DEL_FILE = del
16 | CHK_DIR_EXISTS= if not exist
17 | MKDIR = mkdir
18 | COPY = copy /y
19 | COPY_FILE = copy /y
20 | COPY_DIR = xcopy /s /q /y /i
21 | INSTALL_FILE = copy /y
22 | INSTALL_PROGRAM = copy /y
23 | INSTALL_DIR = xcopy /s /q /y /i
24 | DEL_FILE = del
25 | SYMLINK = $(QMAKE) -install ln -f -s
26 | DEL_DIR = rmdir
27 | MOVE = move
28 | SUBTARGETS = \
29 | release \
30 | debug
31 |
32 |
33 | release: FORCE
34 | @set MAKEFLAGS=$(MAKEFLAGS)
35 | $(MAKE) -f $(MAKEFILE).Release
36 | release-make_first: FORCE
37 | @set MAKEFLAGS=$(MAKEFLAGS)
38 | $(MAKE) -f $(MAKEFILE).Release
39 | release-all: FORCE
40 | @set MAKEFLAGS=$(MAKEFLAGS)
41 | $(MAKE) -f $(MAKEFILE).Release all
42 | release-clean: FORCE
43 | @set MAKEFLAGS=$(MAKEFLAGS)
44 | $(MAKE) -f $(MAKEFILE).Release clean
45 | release-distclean: FORCE
46 | @set MAKEFLAGS=$(MAKEFLAGS)
47 | $(MAKE) -f $(MAKEFILE).Release distclean
48 | release-install: FORCE
49 | @set MAKEFLAGS=$(MAKEFLAGS)
50 | $(MAKE) -f $(MAKEFILE).Release install
51 | release-uninstall: FORCE
52 | @set MAKEFLAGS=$(MAKEFLAGS)
53 | $(MAKE) -f $(MAKEFILE).Release uninstall
54 | debug: FORCE
55 | @set MAKEFLAGS=$(MAKEFLAGS)
56 | $(MAKE) -f $(MAKEFILE).Debug
57 | debug-make_first: FORCE
58 | @set MAKEFLAGS=$(MAKEFLAGS)
59 | $(MAKE) -f $(MAKEFILE).Debug
60 | debug-all: FORCE
61 | @set MAKEFLAGS=$(MAKEFLAGS)
62 | $(MAKE) -f $(MAKEFILE).Debug all
63 | debug-clean: FORCE
64 | @set MAKEFLAGS=$(MAKEFLAGS)
65 | $(MAKE) -f $(MAKEFILE).Debug clean
66 | debug-distclean: FORCE
67 | @set MAKEFLAGS=$(MAKEFLAGS)
68 | $(MAKE) -f $(MAKEFILE).Debug distclean
69 | debug-install: FORCE
70 | @set MAKEFLAGS=$(MAKEFLAGS)
71 | $(MAKE) -f $(MAKEFILE).Debug install
72 | debug-uninstall: FORCE
73 | @set MAKEFLAGS=$(MAKEFLAGS)
74 | $(MAKE) -f $(MAKEFILE).Debug uninstall
75 |
76 | Makefile: ..\CVPlatform.pro C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_pre.prf \
77 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\angle.conf \
78 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-base.conf \
79 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-desktop.conf \
80 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\qconfig.pri \
81 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore.pri \
82 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore_private.pri \
83 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras.pri \
84 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras_private.pri \
85 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput.pri \
86 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput_private.pri \
87 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic.pri \
88 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic_private.pri \
89 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick.pri \
90 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick_private.pri \
91 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras.pri \
92 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras_private.pri \
93 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput.pri \
94 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput_private.pri \
95 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender.pri \
96 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender_private.pri \
97 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender.pri \
98 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender_private.pri \
99 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase.pri \
100 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase_private.pri \
101 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer.pri \
102 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer_private.pri \
103 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver.pri \
104 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver_private.pri \
105 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth.pri \
106 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth_private.pri \
107 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bootstrap_private.pri \
108 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_clucene_private.pri \
109 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent.pri \
110 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent_private.pri \
111 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core.pri \
112 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core_private.pri \
113 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus.pri \
114 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus_private.pri \
115 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer.pri \
116 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer_private.pri \
117 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designercomponents_private.pri \
118 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad.pri \
119 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad_private.pri \
120 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui.pri \
121 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui_private.pri \
122 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help.pri \
123 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help_private.pri \
124 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location.pri \
125 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location_private.pri \
126 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia.pri \
127 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia_private.pri \
128 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets.pri \
129 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets_private.pri \
130 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network.pri \
131 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network_private.pri \
132 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc.pri \
133 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc_private.pri \
134 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl.pri \
135 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl_private.pri \
136 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions.pri \
137 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions_private.pri \
138 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_packetprotocol_private.pri \
139 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_platformsupport_private.pri \
140 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning.pri \
141 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning_private.pri \
142 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport.pri \
143 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport_private.pri \
144 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing.pri \
145 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing_private.pri \
146 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml.pri \
147 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml_private.pri \
148 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldebug_private.pri \
149 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldevtools_private.pri \
150 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest.pri \
151 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest_private.pri \
152 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri \
153 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick.pri \
154 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick_private.pri \
155 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2.pri \
156 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2_private.pri \
157 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickparticles_private.pri \
158 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quicktemplates2_private.pri \
159 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets.pri \
160 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets_private.pri \
161 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script.pri \
162 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script_private.pri \
163 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools.pri \
164 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools_private.pri \
165 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml.pri \
166 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml_private.pri \
167 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors.pri \
168 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors_private.pri \
169 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus.pri \
170 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus_private.pri \
171 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport.pri \
172 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport_private.pri \
173 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql.pri \
174 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql_private.pri \
175 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg.pri \
176 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg_private.pri \
177 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib.pri \
178 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib_private.pri \
179 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uiplugin.pri \
180 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools.pri \
181 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools_private.pri \
182 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel.pri \
183 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel_private.pri \
184 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine.pri \
185 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine_private.pri \
186 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore.pri \
187 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore_private.pri \
188 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri \
189 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets.pri \
190 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets_private.pri \
191 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets.pri \
192 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets_private.pri \
193 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview.pri \
194 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview_private.pri \
195 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets.pri \
196 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets_private.pri \
197 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras.pri \
198 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras_private.pri \
199 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml.pri \
200 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml_private.pri \
201 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns.pri \
202 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns_private.pri \
203 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_zlib_private.pri \
204 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_functions.prf \
205 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_config.prf \
206 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\qt_config.prf \
207 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf \
208 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_post.prf \
209 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds.prf \
210 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\toolchain.prf \
211 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_pre.prf \
212 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\default_pre.prf \
213 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resolve_config.prf \
214 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds_post.prf \
215 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_post.prf \
216 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\rtti.prf \
217 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\precompile_header.prf \
218 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\warn_on.prf \
219 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt.prf \
220 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resources.prf \
221 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\moc.prf \
222 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\opengl.prf \
223 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\uic.prf \
224 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\file_copies.prf \
225 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\windows.prf \
226 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\testcase_targets.prf \
227 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exceptions.prf \
228 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\yacc.prf \
229 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\lex.prf \
230 | ..\CVPlatform.pro \
231 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\qtmain.prl \
232 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Widgets.prl \
233 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Gui.prl \
234 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Core.prl
235 | $(QMAKE) -spec win32-msvc2013 -o Makefile ..\CVPlatform.pro
236 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_pre.prf:
237 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\angle.conf:
238 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-base.conf:
239 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\common\msvc-desktop.conf:
240 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\qconfig.pri:
241 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore.pri:
242 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dcore_private.pri:
243 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras.pri:
244 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dextras_private.pri:
245 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput.pri:
246 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dinput_private.pri:
247 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic.pri:
248 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dlogic_private.pri:
249 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick.pri:
250 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquick_private.pri:
251 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras.pri:
252 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickextras_private.pri:
253 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput.pri:
254 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickinput_private.pri:
255 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender.pri:
256 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3dquickrender_private.pri:
257 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender.pri:
258 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_3drender_private.pri:
259 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase.pri:
260 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axbase_private.pri:
261 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer.pri:
262 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axcontainer_private.pri:
263 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver.pri:
264 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_axserver_private.pri:
265 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth.pri:
266 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bluetooth_private.pri:
267 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_bootstrap_private.pri:
268 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_clucene_private.pri:
269 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent.pri:
270 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_concurrent_private.pri:
271 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core.pri:
272 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_core_private.pri:
273 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus.pri:
274 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_dbus_private.pri:
275 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer.pri:
276 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designer_private.pri:
277 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_designercomponents_private.pri:
278 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad.pri:
279 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gamepad_private.pri:
280 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui.pri:
281 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_gui_private.pri:
282 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help.pri:
283 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_help_private.pri:
284 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location.pri:
285 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_location_private.pri:
286 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia.pri:
287 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimedia_private.pri:
288 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets.pri:
289 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_multimediawidgets_private.pri:
290 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network.pri:
291 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_network_private.pri:
292 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc.pri:
293 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_nfc_private.pri:
294 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl.pri:
295 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_opengl_private.pri:
296 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions.pri:
297 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_openglextensions_private.pri:
298 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_packetprotocol_private.pri:
299 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_platformsupport_private.pri:
300 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning.pri:
301 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_positioning_private.pri:
302 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport.pri:
303 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_printsupport_private.pri:
304 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing.pri:
305 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_purchasing_private.pri:
306 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml.pri:
307 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qml_private.pri:
308 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldebug_private.pri:
309 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmldevtools_private.pri:
310 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest.pri:
311 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qmltest_private.pri:
312 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri:
313 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick.pri:
314 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quick_private.pri:
315 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2.pri:
316 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickcontrols2_private.pri:
317 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickparticles_private.pri:
318 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quicktemplates2_private.pri:
319 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets.pri:
320 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_quickwidgets_private.pri:
321 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script.pri:
322 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_script_private.pri:
323 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools.pri:
324 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scripttools_private.pri:
325 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml.pri:
326 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_scxml_private.pri:
327 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors.pri:
328 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sensors_private.pri:
329 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus.pri:
330 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialbus_private.pri:
331 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport.pri:
332 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_serialport_private.pri:
333 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql.pri:
334 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_sql_private.pri:
335 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg.pri:
336 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_svg_private.pri:
337 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib.pri:
338 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_testlib_private.pri:
339 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uiplugin.pri:
340 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools.pri:
341 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_uitools_private.pri:
342 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel.pri:
343 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webchannel_private.pri:
344 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine.pri:
345 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webengine_private.pri:
346 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore.pri:
347 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecore_private.pri:
348 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri:
349 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets.pri:
350 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webenginewidgets_private.pri:
351 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets.pri:
352 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_websockets_private.pri:
353 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview.pri:
354 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_webview_private.pri:
355 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets.pri:
356 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_widgets_private.pri:
357 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras.pri:
358 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_winextras_private.pri:
359 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml.pri:
360 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xml_private.pri:
361 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns.pri:
362 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_xmlpatterns_private.pri:
363 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\modules\qt_lib_zlib_private.pri:
364 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_functions.prf:
365 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt_config.prf:
366 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\qt_config.prf:
367 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\win32-msvc2013\qmake.conf:
368 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\spec_post.prf:
369 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds.prf:
370 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\toolchain.prf:
371 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_pre.prf:
372 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\default_pre.prf:
373 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resolve_config.prf:
374 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exclusive_builds_post.prf:
375 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\default_post.prf:
376 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\rtti.prf:
377 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\precompile_header.prf:
378 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\warn_on.prf:
379 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\qt.prf:
380 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\resources.prf:
381 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\moc.prf:
382 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\opengl.prf:
383 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\uic.prf:
384 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\file_copies.prf:
385 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\win32\windows.prf:
386 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\testcase_targets.prf:
387 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\exceptions.prf:
388 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\yacc.prf:
389 | C:\Qt\Qt5.7.1\5.7\msvc2013\mkspecs\features\lex.prf:
390 | ..\CVPlatform.pro:
391 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\qtmain.prl:
392 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Widgets.prl:
393 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Gui.prl:
394 | C:\Qt\Qt5.7.1\5.7\msvc2013\lib\Qt5Core.prl:
395 | qmake: FORCE
396 | @$(QMAKE) -spec win32-msvc2013 -o Makefile ..\CVPlatform.pro
397 |
398 | qmake_all: FORCE
399 |
400 | make_first: release-make_first debug-make_first FORCE
401 | all: release-all debug-all FORCE
402 | clean: release-clean debug-clean FORCE
403 | -$(DEL_FILE) CVPlatform.exp
404 | distclean: release-distclean debug-distclean FORCE
405 | -$(DEL_FILE) Makefile
406 | -$(DEL_FILE) CVPlatform.lib
407 |
408 | release-mocclean:
409 | @set MAKEFLAGS=$(MAKEFLAGS)
410 | $(MAKE) -f $(MAKEFILE).Release mocclean
411 | debug-mocclean:
412 | @set MAKEFLAGS=$(MAKEFLAGS)
413 | $(MAKE) -f $(MAKEFILE).Debug mocclean
414 | mocclean: release-mocclean debug-mocclean
415 |
416 | release-mocables:
417 | @set MAKEFLAGS=$(MAKEFLAGS)
418 | $(MAKE) -f $(MAKEFILE).Release mocables
419 | debug-mocables:
420 | @set MAKEFLAGS=$(MAKEFLAGS)
421 | $(MAKE) -f $(MAKEFILE).Debug mocables
422 | mocables: release-mocables debug-mocables
423 |
424 | check: first
425 |
426 | benchmark: first
427 | FORCE:
428 |
429 | $(MAKEFILE).Release: Makefile
430 | $(MAKEFILE).Debug: Makefile
431 |
--------------------------------------------------------------------------------
/Release/release/CVPlatform.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/CVPlatform.exe
--------------------------------------------------------------------------------
/Release/release/main.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/main.obj
--------------------------------------------------------------------------------
/Release/release/mainwindow.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/mainwindow.obj
--------------------------------------------------------------------------------
/Release/release/moc_mainwindow.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'mainwindow.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "../../mainwindow.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'mainwindow.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_MainWindow_t {
22 | QByteArrayData data[19];
23 | char stringdata0[219];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
33 | QT_MOC_LITERAL(1, 11, 11), // "openProcess"
34 | QT_MOC_LITERAL(2, 23, 0), // ""
35 | QT_MOC_LITERAL(3, 24, 10), // "newProcess"
36 | QT_MOC_LITERAL(4, 35, 11), // "saveProcess"
37 | QT_MOC_LITERAL(5, 47, 12), // "closeProcess"
38 | QT_MOC_LITERAL(6, 60, 12), // "startProcess"
39 | QT_MOC_LITERAL(7, 73, 15), // "showContextMenu"
40 | QT_MOC_LITERAL(8, 89, 5), // "point"
41 | QT_MOC_LITERAL(9, 95, 10), // "addProcess"
42 | QT_MOC_LITERAL(10, 106, 5), // "Index"
43 | QT_MOC_LITERAL(11, 112, 10), // "endProcess"
44 | QT_MOC_LITERAL(12, 123, 11), // "stopProcess"
45 | QT_MOC_LITERAL(13, 135, 12), // "gGetFilePath"
46 | QT_MOC_LITERAL(14, 148, 11), // "clickAction"
47 | QT_MOC_LITERAL(15, 160, 13), // "UpperCVAction"
48 | QT_MOC_LITERAL(16, 174, 14), // "DownerCVAction"
49 | QT_MOC_LITERAL(17, 189, 14), // "DeleteCVAction"
50 | QT_MOC_LITERAL(18, 204, 14) // "SetProCVAction"
51 |
52 | },
53 | "MainWindow\0openProcess\0\0newProcess\0"
54 | "saveProcess\0closeProcess\0startProcess\0"
55 | "showContextMenu\0point\0addProcess\0Index\0"
56 | "endProcess\0stopProcess\0gGetFilePath\0"
57 | "clickAction\0UpperCVAction\0DownerCVAction\0"
58 | "DeleteCVAction\0SetProCVAction"
59 | };
60 | #undef QT_MOC_LITERAL
61 |
62 | static const uint qt_meta_data_MainWindow[] = {
63 |
64 | // content:
65 | 7, // revision
66 | 0, // classname
67 | 0, 0, // classinfo
68 | 15, 14, // methods
69 | 0, 0, // properties
70 | 0, 0, // enums/sets
71 | 0, 0, // constructors
72 | 0, // flags
73 | 0, // signalCount
74 |
75 | // slots: name, argc, parameters, tag, flags
76 | 1, 0, 89, 2, 0x0a /* Public */,
77 | 3, 0, 90, 2, 0x0a /* Public */,
78 | 4, 0, 91, 2, 0x0a /* Public */,
79 | 5, 0, 92, 2, 0x0a /* Public */,
80 | 6, 0, 93, 2, 0x0a /* Public */,
81 | 7, 1, 94, 2, 0x0a /* Public */,
82 | 9, 1, 97, 2, 0x0a /* Public */,
83 | 11, 0, 100, 2, 0x0a /* Public */,
84 | 12, 0, 101, 2, 0x0a /* Public */,
85 | 13, 0, 102, 2, 0x0a /* Public */,
86 | 14, 1, 103, 2, 0x0a /* Public */,
87 | 15, 0, 106, 2, 0x0a /* Public */,
88 | 16, 0, 107, 2, 0x0a /* Public */,
89 | 17, 0, 108, 2, 0x0a /* Public */,
90 | 18, 0, 109, 2, 0x0a /* Public */,
91 |
92 | // slots: parameters
93 | QMetaType::Void,
94 | QMetaType::Void,
95 | QMetaType::Void,
96 | QMetaType::Void,
97 | QMetaType::Void,
98 | QMetaType::Void, QMetaType::QPoint, 8,
99 | QMetaType::Void, QMetaType::QModelIndex, 10,
100 | QMetaType::Void,
101 | QMetaType::Void,
102 | QMetaType::Void,
103 | QMetaType::Void, QMetaType::QModelIndex, 10,
104 | QMetaType::Void,
105 | QMetaType::Void,
106 | QMetaType::Void,
107 | QMetaType::Void,
108 |
109 | 0 // eod
110 | };
111 |
112 | void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
113 | {
114 | if (_c == QMetaObject::InvokeMetaMethod) {
115 | MainWindow *_t = static_cast(_o);
116 | Q_UNUSED(_t)
117 | switch (_id) {
118 | case 0: _t->openProcess(); break;
119 | case 1: _t->newProcess(); break;
120 | case 2: _t->saveProcess(); break;
121 | case 3: _t->closeProcess(); break;
122 | case 4: _t->startProcess(); break;
123 | case 5: _t->showContextMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
124 | case 6: _t->addProcess((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
125 | case 7: _t->endProcess(); break;
126 | case 8: _t->stopProcess(); break;
127 | case 9: _t->gGetFilePath(); break;
128 | case 10: _t->clickAction((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
129 | case 11: _t->UpperCVAction(); break;
130 | case 12: _t->DownerCVAction(); break;
131 | case 13: _t->DeleteCVAction(); break;
132 | case 14: _t->SetProCVAction(); break;
133 | default: ;
134 | }
135 | }
136 | }
137 |
138 | const QMetaObject MainWindow::staticMetaObject = {
139 | { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
140 | qt_meta_data_MainWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
141 | };
142 |
143 |
144 | const QMetaObject *MainWindow::metaObject() const
145 | {
146 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
147 | }
148 |
149 | void *MainWindow::qt_metacast(const char *_clname)
150 | {
151 | if (!_clname) return Q_NULLPTR;
152 | if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
153 | return static_cast(const_cast< MainWindow*>(this));
154 | return QMainWindow::qt_metacast(_clname);
155 | }
156 |
157 | int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
158 | {
159 | _id = QMainWindow::qt_metacall(_c, _id, _a);
160 | if (_id < 0)
161 | return _id;
162 | if (_c == QMetaObject::InvokeMetaMethod) {
163 | if (_id < 15)
164 | qt_static_metacall(this, _c, _id, _a);
165 | _id -= 15;
166 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
167 | if (_id < 15)
168 | *reinterpret_cast(_a[0]) = -1;
169 | _id -= 15;
170 | }
171 | return _id;
172 | }
173 | QT_END_MOC_NAMESPACE
174 |
--------------------------------------------------------------------------------
/Release/release/moc_mainwindow.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/moc_mainwindow.obj
--------------------------------------------------------------------------------
/Release/release/moc_processmodule.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'processmodule.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "../../processmodule.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'processmodule.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_processmodule_t {
22 | QByteArrayData data[4];
23 | char stringdata0[48];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_processmodule_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_processmodule_t qt_meta_stringdata_processmodule = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 13), // "processmodule"
33 | QT_MOC_LITERAL(1, 14, 16), // "FinishProcessing"
34 | QT_MOC_LITERAL(2, 31, 0), // ""
35 | QT_MOC_LITERAL(3, 32, 15) // "BreakProcessing"
36 |
37 | },
38 | "processmodule\0FinishProcessing\0\0"
39 | "BreakProcessing"
40 | };
41 | #undef QT_MOC_LITERAL
42 |
43 | static const uint qt_meta_data_processmodule[] = {
44 |
45 | // content:
46 | 7, // revision
47 | 0, // classname
48 | 0, 0, // classinfo
49 | 2, 14, // methods
50 | 0, 0, // properties
51 | 0, 0, // enums/sets
52 | 0, 0, // constructors
53 | 0, // flags
54 | 2, // signalCount
55 |
56 | // signals: name, argc, parameters, tag, flags
57 | 1, 0, 24, 2, 0x06 /* Public */,
58 | 3, 0, 25, 2, 0x06 /* Public */,
59 |
60 | // signals: parameters
61 | QMetaType::Void,
62 | QMetaType::Void,
63 |
64 | 0 // eod
65 | };
66 |
67 | void processmodule::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
68 | {
69 | if (_c == QMetaObject::InvokeMetaMethod) {
70 | processmodule *_t = static_cast(_o);
71 | Q_UNUSED(_t)
72 | switch (_id) {
73 | case 0: _t->FinishProcessing(); break;
74 | case 1: _t->BreakProcessing(); break;
75 | default: ;
76 | }
77 | } else if (_c == QMetaObject::IndexOfMethod) {
78 | int *result = reinterpret_cast(_a[0]);
79 | void **func = reinterpret_cast(_a[1]);
80 | {
81 | typedef void (processmodule::*_t)();
82 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::FinishProcessing)) {
83 | *result = 0;
84 | return;
85 | }
86 | }
87 | {
88 | typedef void (processmodule::*_t)();
89 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::BreakProcessing)) {
90 | *result = 1;
91 | return;
92 | }
93 | }
94 | }
95 | Q_UNUSED(_a);
96 | }
97 |
98 | const QMetaObject processmodule::staticMetaObject = {
99 | { &QObject::staticMetaObject, qt_meta_stringdata_processmodule.data,
100 | qt_meta_data_processmodule, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
101 | };
102 |
103 |
104 | const QMetaObject *processmodule::metaObject() const
105 | {
106 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
107 | }
108 |
109 | void *processmodule::qt_metacast(const char *_clname)
110 | {
111 | if (!_clname) return Q_NULLPTR;
112 | if (!strcmp(_clname, qt_meta_stringdata_processmodule.stringdata0))
113 | return static_cast(const_cast< processmodule*>(this));
114 | return QObject::qt_metacast(_clname);
115 | }
116 |
117 | int processmodule::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
118 | {
119 | _id = QObject::qt_metacall(_c, _id, _a);
120 | if (_id < 0)
121 | return _id;
122 | if (_c == QMetaObject::InvokeMetaMethod) {
123 | if (_id < 2)
124 | qt_static_metacall(this, _c, _id, _a);
125 | _id -= 2;
126 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
127 | if (_id < 2)
128 | *reinterpret_cast(_a[0]) = -1;
129 | _id -= 2;
130 | }
131 | return _id;
132 | }
133 |
134 | // SIGNAL 0
135 | void processmodule::FinishProcessing()
136 | {
137 | QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
138 | }
139 |
140 | // SIGNAL 1
141 | void processmodule::BreakProcessing()
142 | {
143 | QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
144 | }
145 | QT_END_MOC_NAMESPACE
146 |
--------------------------------------------------------------------------------
/Release/release/moc_processmodule.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/moc_processmodule.obj
--------------------------------------------------------------------------------
/Release/release/processmodule.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/Release/release/processmodule.obj
--------------------------------------------------------------------------------
/Release/ui_mainwindow.h:
--------------------------------------------------------------------------------
1 | /********************************************************************************
2 | ** Form generated from reading UI file 'mainwindow.ui'
3 | **
4 | ** Created by: Qt User Interface Compiler version 5.7.1
5 | **
6 | ** WARNING! All changes made in this file will be lost when recompiling UI file!
7 | ********************************************************************************/
8 |
9 | #ifndef UI_MAINWINDOW_H
10 | #define UI_MAINWINDOW_H
11 |
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 |
22 | QT_BEGIN_NAMESPACE
23 |
24 | class Ui_MainWindow
25 | {
26 | public:
27 | QWidget *centralWidget;
28 | QMenuBar *menuBar;
29 | QStatusBar *statusBar;
30 |
31 | void setupUi(QMainWindow *MainWindow)
32 | {
33 | if (MainWindow->objectName().isEmpty())
34 | MainWindow->setObjectName(QStringLiteral("MainWindow"));
35 | MainWindow->resize(400, 300);
36 | centralWidget = new QWidget(MainWindow);
37 | centralWidget->setObjectName(QStringLiteral("centralWidget"));
38 | MainWindow->setCentralWidget(centralWidget);
39 | menuBar = new QMenuBar(MainWindow);
40 | menuBar->setObjectName(QStringLiteral("menuBar"));
41 | menuBar->setGeometry(QRect(0, 0, 400, 22));
42 | MainWindow->setMenuBar(menuBar);
43 | statusBar = new QStatusBar(MainWindow);
44 | statusBar->setObjectName(QStringLiteral("statusBar"));
45 | MainWindow->setStatusBar(statusBar);
46 |
47 | retranslateUi(MainWindow);
48 |
49 | QMetaObject::connectSlotsByName(MainWindow);
50 | } // setupUi
51 |
52 | void retranslateUi(QMainWindow *MainWindow)
53 | {
54 | MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR));
55 | } // retranslateUi
56 |
57 | };
58 |
59 | namespace Ui {
60 | class MainWindow: public Ui_MainWindow {};
61 | } // namespace Ui
62 |
63 | QT_END_NAMESPACE
64 |
65 | #endif // UI_MAINWINDOW_H
66 |
--------------------------------------------------------------------------------
/correction.cpp:
--------------------------------------------------------------------------------
1 | #include"Correction.h"
2 |
3 | void PerspectiveTrans(const Mat &SrcImg,Mat &DstImg,double p1x,double p1y,double p2x,double p2y,double p3x,double p3y,double p4x,double p4y,double p11x,double p11y,double p22x,double p22y,double p33x,double p33y,double p44x,double p44y) //, Point2f *scrPoints, Point2f *dstPoints
4 | {
5 | Point2f AffinePoints0[4] = {Point2f(p1x, p1y), Point2f(p2x, p2y), Point2f(p3x, p3y), Point2f(p4x, p4y)};
6 | Point2f AffinePoints1[4] = {Point2f(p11x, p11y), Point2f(p22x, p22y), Point2f(p33x, p33y), Point2f(p44x, p44y)};
7 | Mat Trans = getPerspectiveTransform(AffinePoints0, AffinePoints1);
8 | warpPerspective(SrcImg, DstImg, Trans, Size(SrcImg.cols, SrcImg.rows), INTER_CUBIC);
9 | }
10 | void AffineTrans(const Mat &SrcImg,Mat &DstImg,double p1x,double p1y,double p2x,double p2y,double p3x,double p3y,double p11x,double p11y,double p22x,double p22y,double p33x,double p33y) //, Point2f *scrPoints, Point2f *dstPoints
11 | {
12 | Point2f AffinePoints0[3] = {Point2f(p1x, p1y), Point2f(p2x, p2y), Point2f(p3x, p3y)};
13 | Point2f AffinePoints1[3] = {Point2f(p11x, p11y), Point2f(p22x, p22y), Point2f(p33x, p33y)};
14 | Mat Trans = getAffineTransform(AffinePoints0, AffinePoints1);
15 | warpAffine(SrcImg, DstImg, Trans, Size(SrcImg.cols, SrcImg.rows), INTER_CUBIC);
16 | }
17 | void resize_s(const Mat &SrcImg, Mat &DstImg, double width,double hight)
18 | {
19 | resize(SrcImg, DstImg, Size(SrcImg.cols*width, SrcImg.rows*hight));
20 | }
21 | void getRotationMatrix2D_s(const Mat &SrcImg, Mat &DstImg, double degree)
22 | {
23 | warpAffine(SrcImg, DstImg, getRotationMatrix2D(Point2f(SrcImg.cols / 2, SrcImg.rows / 2), degree, 0.5), Size(SrcImg.cols, SrcImg.rows));
24 | }
25 | void mirror_s(const Mat &SrcImg, Mat &DstImg,bool flag)
26 | {
27 | Mat map_x;
28 | Mat map_y;
29 | map_x.create(SrcImg.size(), CV_32F);
30 | map_y.create(SrcImg.size(), CV_32F);
31 | for (int i = 0; i < SrcImg.rows; ++i)
32 | {
33 | for (int j = 0; j < SrcImg.cols; ++j)
34 | {
35 | if (!flag)
36 | {
37 | map_x.at(i, j) = (float)(SrcImg.cols - j);
38 | map_y.at(i, j) = (float)i;
39 | }
40 | else
41 | {
42 | map_x.at(i, j) = (float)(SrcImg.cols - j);
43 | map_y.at(i, j) = (float)(SrcImg.rows - i);
44 | }
45 | }
46 | }
47 | remap(SrcImg, DstImg, map_x, map_y, INTER_LINEAR);
48 | }
49 | void trainslation(const Mat &SrcImg, Mat &DstImg,double width,double hight)
50 | {
51 | cv::Mat t_mat = cv::Mat::zeros(2, 3, CV_32FC1);
52 |
53 | t_mat.at(0, 0) = 1;
54 | t_mat.at(0, 2) = SrcImg.cols*width; //水平平移量
55 | t_mat.at(1, 1) = 1;
56 | t_mat.at(1, 2) = SrcImg.rows*hight; //竖直平移量
57 |
58 | //根据平移矩阵进行仿射变换
59 | warpAffine(SrcImg, DstImg, t_mat, SrcImg.size());
60 |
61 | }
62 | void shear_s(const Mat &SrcImg, Mat &DstImg, double ratio)
63 | {
64 | double a = tan(ratio*acos(-1.0) / 180.0);
65 | int W = SrcImg.cols;
66 | int H = SrcImg.rows + W*a;
67 | DstImg.create(Size(W, H), SrcImg.type());
68 | for(int i=0;i(x, j)[k] = SrcImg.at(i, j)[k];
76 | }
77 | }
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/correction.h:
--------------------------------------------------------------------------------
1 | #ifndef CORRECTION_H
2 | #define CORRECTION_H
3 |
4 | #include"ProHeader.h"
5 | void PerspectiveTrans(const Mat &SrcImg,Mat &DstImg,double p1x,double p1y,double p2x,double p2y,double p3x,double p3y,double p4x,double p4y,double p11x,double p11y,double p22x,double p22y,double p33x,double p33y,double p44x,double p44y);
6 | void AffineTrans(const Mat &SrcImg,Mat &DstImg,double p1x,double p1y,double p2x,double p2y,double p3x,double p3y,double p11x,double p11y,double p22x,double p22y,double p33x,double p33y);
7 | void AffineTrans(const Mat &SrcImg,Mat &DstImg);
8 | void resize_s(const Mat &SrcImg, Mat &DstImg, double width,double hight);
9 | void getRotationMatrix2D_s(const Mat &SrcImg, Mat &DstImg, double degree);
10 | void mirror_s(const Mat &SrcImg, Mat &DstImg,bool flag);
11 | void trainslation(const Mat &SrcImg, Mat &DstImg,double width,double hight);
12 | void shear_s(const Mat &SrcImg, Mat &DstImg, double ratio);
13 | #endif // CORRECTION_H
14 |
--------------------------------------------------------------------------------
/generate_moc.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/generate_moc.txt
--------------------------------------------------------------------------------
/main 2.cpp:
--------------------------------------------------------------------------------
1 | #include "MainHeader.h"
2 |
3 | int main()
4 | {
5 | Mat SrcImg = imread("/Users/markfound/Desktop/20160912223814977.jpg");
6 | Mat Res;
7 | Dis_Trans(SrcImg, Res);
8 | imshow("res", Res);
9 | waitKey(0);
10 | return 0;
11 | }
12 |
--------------------------------------------------------------------------------
/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | int main(int argc, char *argv[])
7 | {
8 | QApplication a(argc, argv);
9 | QPixmap pixmap(":/resources/Screen.jpg"); //创建一个QPixmap对象,设置启动图片
10 | QSplashScreen splash(pixmap); //利用QPixmap对象创建一个QSplashScreen对象
11 | splash.show(); //显示此启动图片
12 | a.processEvents(); //使程序在显示启动画面的同时仍能响应鼠标其他事件
13 | QElapsedTimer t;
14 | t.start();
15 | while(t.elapsed()<2500)
16 | QCoreApplication::processEvents();
17 | MainWindow w;
18 | w.show();
19 | splash.finish(&w);
20 | return a.exec();
21 | }
22 |
--------------------------------------------------------------------------------
/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | //#pragma execution_character_set("utf-8")
5 |
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include "processmodule.h"
33 |
34 | namespace Ui {
35 | class MainWindow;
36 | }
37 |
38 | class MainWindow : public QMainWindow
39 | {
40 | Q_OBJECT
41 |
42 | public:
43 | explicit MainWindow(QWidget *parent = nullptr);
44 | ~MainWindow();
45 | bool setUITips(QString &s);
46 | public slots:
47 | void openProcess();
48 | void newProcess();
49 | void saveProcess();
50 | void closeProcess();
51 | void startProcess();
52 | void Generate_Code();
53 | void showContextMenu(const QPoint &point);
54 | void addProcess(const QModelIndex &Index);
55 | void endProcess();
56 | void stopProcess();
57 | void gGetFilePath();
58 | void clickAction(const QModelIndex &Index);
59 | void UpperCVAction();
60 | void DownerCVAction();
61 | void DeleteCVAction();
62 | void SetProCVAction();
63 |
64 | private:
65 | Ui::MainWindow *ui;
66 | bool processWindow = false;
67 | bool isSave = false;
68 | QStatusBar *pSBar; //底部状态栏
69 | QDockWidget *pProcessDock;
70 | QStringList lProList; //列表
71 | QStringListModel *pSLModel; //列表显示
72 | QListView *mActionsView;
73 | QTreeWidget *pTree;
74 | QString sLocalFileName = tr("未命名.cvp");
75 | QString GlobalPath;
76 | QLineEdit *GlobalEdit1 = new QLineEdit();
77 | int GlobalFlag = -1;
78 | int ActionView_id= -1;
79 |
80 | //central
81 | QWidget *pCentral; //副窗口
82 | QGridLayout *pCETLayout = new QGridLayout();
83 | QLabel *Img_label = new QLabel();
84 |
85 | bool SetArgs();
86 | void ResetStatus(); //初始化
87 | void ShowImage(Mat Image); //显示图片
88 |
89 | vector CVActionCount;
90 |
91 | };
92 |
93 | #endif // MAINWINDOW_H
94 |
--------------------------------------------------------------------------------
/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 677
10 | 494
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/moc_mainwindow.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'mainwindow.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "mainwindow.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'mainwindow.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_MainWindow_t {
22 | QByteArrayData data[19];
23 | char stringdata0[219];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
33 | QT_MOC_LITERAL(1, 11, 11), // "openProcess"
34 | QT_MOC_LITERAL(2, 23, 0), // ""
35 | QT_MOC_LITERAL(3, 24, 10), // "newProcess"
36 | QT_MOC_LITERAL(4, 35, 11), // "saveProcess"
37 | QT_MOC_LITERAL(5, 47, 12), // "closeProcess"
38 | QT_MOC_LITERAL(6, 60, 12), // "startProcess"
39 | QT_MOC_LITERAL(7, 73, 15), // "showContextMenu"
40 | QT_MOC_LITERAL(8, 89, 5), // "point"
41 | QT_MOC_LITERAL(9, 95, 10), // "addProcess"
42 | QT_MOC_LITERAL(10, 106, 5), // "Index"
43 | QT_MOC_LITERAL(11, 112, 10), // "endProcess"
44 | QT_MOC_LITERAL(12, 123, 11), // "stopProcess"
45 | QT_MOC_LITERAL(13, 135, 12), // "gGetFilePath"
46 | QT_MOC_LITERAL(14, 148, 11), // "clickAction"
47 | QT_MOC_LITERAL(15, 160, 13), // "UpperCVAction"
48 | QT_MOC_LITERAL(16, 174, 14), // "DownerCVAction"
49 | QT_MOC_LITERAL(17, 189, 14), // "DeleteCVAction"
50 | QT_MOC_LITERAL(18, 204, 14) // "SetProCVAction"
51 |
52 | },
53 | "MainWindow\0openProcess\0\0newProcess\0"
54 | "saveProcess\0closeProcess\0startProcess\0"
55 | "showContextMenu\0point\0addProcess\0Index\0"
56 | "endProcess\0stopProcess\0gGetFilePath\0"
57 | "clickAction\0UpperCVAction\0DownerCVAction\0"
58 | "DeleteCVAction\0SetProCVAction"
59 | };
60 | #undef QT_MOC_LITERAL
61 |
62 | static const uint qt_meta_data_MainWindow[] = {
63 |
64 | // content:
65 | 7, // revision
66 | 0, // classname
67 | 0, 0, // classinfo
68 | 15, 14, // methods
69 | 0, 0, // properties
70 | 0, 0, // enums/sets
71 | 0, 0, // constructors
72 | 0, // flags
73 | 0, // signalCount
74 |
75 | // slots: name, argc, parameters, tag, flags
76 | 1, 0, 89, 2, 0x0a /* Public */,
77 | 3, 0, 90, 2, 0x0a /* Public */,
78 | 4, 0, 91, 2, 0x0a /* Public */,
79 | 5, 0, 92, 2, 0x0a /* Public */,
80 | 6, 0, 93, 2, 0x0a /* Public */,
81 | 7, 1, 94, 2, 0x0a /* Public */,
82 | 9, 1, 97, 2, 0x0a /* Public */,
83 | 11, 0, 100, 2, 0x0a /* Public */,
84 | 12, 0, 101, 2, 0x0a /* Public */,
85 | 13, 0, 102, 2, 0x0a /* Public */,
86 | 14, 1, 103, 2, 0x0a /* Public */,
87 | 15, 0, 106, 2, 0x0a /* Public */,
88 | 16, 0, 107, 2, 0x0a /* Public */,
89 | 17, 0, 108, 2, 0x0a /* Public */,
90 | 18, 0, 109, 2, 0x0a /* Public */,
91 |
92 | // slots: parameters
93 | QMetaType::Void,
94 | QMetaType::Void,
95 | QMetaType::Void,
96 | QMetaType::Void,
97 | QMetaType::Void,
98 | QMetaType::Void, QMetaType::QPoint, 8,
99 | QMetaType::Void, QMetaType::QModelIndex, 10,
100 | QMetaType::Void,
101 | QMetaType::Void,
102 | QMetaType::Void,
103 | QMetaType::Void, QMetaType::QModelIndex, 10,
104 | QMetaType::Void,
105 | QMetaType::Void,
106 | QMetaType::Void,
107 | QMetaType::Void,
108 |
109 | 0 // eod
110 | };
111 |
112 | void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
113 | {
114 | if (_c == QMetaObject::InvokeMetaMethod) {
115 | MainWindow *_t = static_cast(_o);
116 | Q_UNUSED(_t)
117 | switch (_id) {
118 | case 0: _t->openProcess(); break;
119 | case 1: _t->newProcess(); break;
120 | case 2: _t->saveProcess(); break;
121 | case 3: _t->closeProcess(); break;
122 | case 4: _t->startProcess(); break;
123 | case 5: _t->showContextMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
124 | case 6: _t->addProcess((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
125 | case 7: _t->endProcess(); break;
126 | case 8: _t->stopProcess(); break;
127 | case 9: _t->gGetFilePath(); break;
128 | case 10: _t->clickAction((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
129 | case 11: _t->UpperCVAction(); break;
130 | case 12: _t->DownerCVAction(); break;
131 | case 13: _t->DeleteCVAction(); break;
132 | case 14: _t->SetProCVAction(); break;
133 | default: ;
134 | }
135 | }
136 | }
137 |
138 | const QMetaObject MainWindow::staticMetaObject = {
139 | { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
140 | qt_meta_data_MainWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
141 | };
142 |
143 |
144 | const QMetaObject *MainWindow::metaObject() const
145 | {
146 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
147 | }
148 |
149 | void *MainWindow::qt_metacast(const char *_clname)
150 | {
151 | if (!_clname) return Q_NULLPTR;
152 | if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
153 | return static_cast(const_cast< MainWindow*>(this));
154 | return QMainWindow::qt_metacast(_clname);
155 | }
156 |
157 | int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
158 | {
159 | _id = QMainWindow::qt_metacall(_c, _id, _a);
160 | if (_id < 0)
161 | return _id;
162 | if (_c == QMetaObject::InvokeMetaMethod) {
163 | if (_id < 15)
164 | qt_static_metacall(this, _c, _id, _a);
165 | _id -= 15;
166 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
167 | if (_id < 15)
168 | *reinterpret_cast(_a[0]) = -1;
169 | _id -= 15;
170 | }
171 | return _id;
172 | }
173 | QT_END_MOC_NAMESPACE
174 |
--------------------------------------------------------------------------------
/moc_processmodule.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Meta object code from reading C++ file 'processmodule.h'
3 | **
4 | ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.7.1)
5 | **
6 | ** WARNING! All changes made in this file will be lost!
7 | *****************************************************************************/
8 |
9 | #include "processmodule.h"
10 | #include
11 | #include
12 | #if !defined(Q_MOC_OUTPUT_REVISION)
13 | #error "The header file 'processmodule.h' doesn't include ."
14 | #elif Q_MOC_OUTPUT_REVISION != 67
15 | #error "This file was generated using the moc from 5.7.1. It"
16 | #error "cannot be used with the include files from this version of Qt."
17 | #error "(The moc has changed too much.)"
18 | #endif
19 |
20 | QT_BEGIN_MOC_NAMESPACE
21 | struct qt_meta_stringdata_processmodule_t {
22 | QByteArrayData data[4];
23 | char stringdata0[48];
24 | };
25 | #define QT_MOC_LITERAL(idx, ofs, len) \
26 | Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
27 | qptrdiff(offsetof(qt_meta_stringdata_processmodule_t, stringdata0) + ofs \
28 | - idx * sizeof(QByteArrayData)) \
29 | )
30 | static const qt_meta_stringdata_processmodule_t qt_meta_stringdata_processmodule = {
31 | {
32 | QT_MOC_LITERAL(0, 0, 13), // "processmodule"
33 | QT_MOC_LITERAL(1, 14, 16), // "FinishProcessing"
34 | QT_MOC_LITERAL(2, 31, 0), // ""
35 | QT_MOC_LITERAL(3, 32, 15) // "BreakProcessing"
36 |
37 | },
38 | "processmodule\0FinishProcessing\0\0"
39 | "BreakProcessing"
40 | };
41 | #undef QT_MOC_LITERAL
42 |
43 | static const uint qt_meta_data_processmodule[] = {
44 |
45 | // content:
46 | 7, // revision
47 | 0, // classname
48 | 0, 0, // classinfo
49 | 2, 14, // methods
50 | 0, 0, // properties
51 | 0, 0, // enums/sets
52 | 0, 0, // constructors
53 | 0, // flags
54 | 2, // signalCount
55 |
56 | // signals: name, argc, parameters, tag, flags
57 | 1, 0, 24, 2, 0x06 /* Public */,
58 | 3, 0, 25, 2, 0x06 /* Public */,
59 |
60 | // signals: parameters
61 | QMetaType::Void,
62 | QMetaType::Void,
63 |
64 | 0 // eod
65 | };
66 |
67 | void processmodule::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
68 | {
69 | if (_c == QMetaObject::InvokeMetaMethod) {
70 | processmodule *_t = static_cast(_o);
71 | Q_UNUSED(_t)
72 | switch (_id) {
73 | case 0: _t->FinishProcessing(); break;
74 | case 1: _t->BreakProcessing(); break;
75 | default: ;
76 | }
77 | } else if (_c == QMetaObject::IndexOfMethod) {
78 | int *result = reinterpret_cast(_a[0]);
79 | void **func = reinterpret_cast(_a[1]);
80 | {
81 | typedef void (processmodule::*_t)();
82 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::FinishProcessing)) {
83 | *result = 0;
84 | return;
85 | }
86 | }
87 | {
88 | typedef void (processmodule::*_t)();
89 | if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&processmodule::BreakProcessing)) {
90 | *result = 1;
91 | return;
92 | }
93 | }
94 | }
95 | Q_UNUSED(_a);
96 | }
97 |
98 | const QMetaObject processmodule::staticMetaObject = {
99 | { &QObject::staticMetaObject, qt_meta_stringdata_processmodule.data,
100 | qt_meta_data_processmodule, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
101 | };
102 |
103 |
104 | const QMetaObject *processmodule::metaObject() const
105 | {
106 | return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
107 | }
108 |
109 | void *processmodule::qt_metacast(const char *_clname)
110 | {
111 | if (!_clname) return Q_NULLPTR;
112 | if (!strcmp(_clname, qt_meta_stringdata_processmodule.stringdata0))
113 | return static_cast(const_cast< processmodule*>(this));
114 | return QObject::qt_metacast(_clname);
115 | }
116 |
117 | int processmodule::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
118 | {
119 | _id = QObject::qt_metacall(_c, _id, _a);
120 | if (_id < 0)
121 | return _id;
122 | if (_c == QMetaObject::InvokeMetaMethod) {
123 | if (_id < 2)
124 | qt_static_metacall(this, _c, _id, _a);
125 | _id -= 2;
126 | } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
127 | if (_id < 2)
128 | *reinterpret_cast(_a[0]) = -1;
129 | _id -= 2;
130 | }
131 | return _id;
132 | }
133 |
134 | // SIGNAL 0
135 | void processmodule::FinishProcessing()
136 | {
137 | QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
138 | }
139 |
140 | // SIGNAL 1
141 | void processmodule::BreakProcessing()
142 | {
143 | QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
144 | }
145 | QT_END_MOC_NAMESPACE
146 |
--------------------------------------------------------------------------------
/processmodule.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "processmodule.h"
3 | #include"MainHeader.h"
4 | #include
5 | #include
6 | #include
7 |
8 | void processmodule::addCVActions(CVAction act)
9 | {
10 | Order.push_back(act);
11 | }
12 |
13 | bool processmodule::swapCVActions(unsigned int index1, unsigned int index2)
14 | {
15 | //Result.clear();
16 | if (Order.size()op;
64 | vectorfunction;
65 | op.clear();
66 | function.clear();
67 | for(int i=0;i pts;
253 | for(int j=0;j
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | //#pragma execution_character_set("utf-8")
11 |
12 | using namespace std;
13 | using namespace cv;
14 |
15 | struct CVAction //Markfound
16 | {
17 | int type_id;
18 | unsigned int mode;
19 | QString name;
20 | bool isProcessed = false;
21 | vectorarg;
22 | vectorp;
23 | CVAction()
24 | {
25 | type_id=-1;
26 | name="";
27 | mode=0;
28 | p.clear();
29 | arg.clear();
30 | }
31 | CVAction(unsigned int i, QString n) : type_id(i), name(n)
32 | {
33 | mode=0;
34 | p.clear();
35 | arg.clear();
36 | }
37 | };
38 |
39 | class processmodule : public QObject //与主程序通讯
40 | {
41 | Q_OBJECT
42 |
43 | public:
44 | processmodule() {}
45 | Mat getResult(int natural_id); //获取Result(答案)数组里面的图片
46 | void addCVActions(CVAction act); //添加CVAction进Order里面
47 | bool deleteCVAction(int natrual_id); //删除对应的CVAction
48 | bool swapCVActions(unsigned int index1, unsigned int index2);
49 | void clearCVActions();
50 | void processCVActions(int begin_natural_id,int end_natrual_id);
51 | unsigned long getNumberOfCVActions() {return Order.size();}
52 | unsigned long getNumberOfResults() {return Result.size();}
53 | void creat_cpp();
54 | CVAction& getCVAction(int natrual_id) {return Order[natrual_id];}
55 |
56 | signals:
57 | void FinishProcessing();
58 | void BreakProcessing();
59 |
60 | private:
61 | //想修改一下数据结构,使用数组+指针方式储存执行流程以及执行结果。可通过实验检测。
62 | vector Order;
63 | vector Result;
64 | Mat LoadImage(QString path);
65 | Mat SaveImage(QString path);
66 | bool isStop = false;
67 |
68 |
69 | };
70 |
71 | #endif // PROCESSMODULE_H
72 |
--------------------------------------------------------------------------------
/q2.cpp:
--------------------------------------------------------------------------------
1 | #include "q2.h"
2 | #include"mainwindow.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | extern processmodule CoreModule; //处理数据:CVAction
9 |
10 | void Q2::Myshow(int i)
11 | {
12 | if(!this->itemAt(i)->widget()->isVisible())
13 | {
14 | this->itemAt(i)->widget()->show();
15 | }
16 | }
17 | void Q2::Myhide(int i)
18 | {
19 | if(this->itemAt(i)->widget()->isVisible())
20 | {
21 | this->itemAt(i)->widget()->hide();
22 | }
23 | }
24 |
25 | void Q2::Correction_slots(int)
26 | {
27 | int id=this->Correction->currentIndex();
28 | switch (id)
29 | {
30 | case 0:
31 | {
32 | for(int i=4;i<=7;i++)
33 | {
34 | Myshow(i);
35 | }
36 | for(int i=8;i<=17;i++)
37 | {
38 | Myhide(i);
39 | }
40 | break;
41 | }
42 | case 1:
43 | {
44 | Myhide(4);Myhide(5);Myhide(6);Myhide(7);
45 | Myshow(8);Myshow(9);
46 | for(int i=10;i<=17;i++)
47 | {
48 | Myhide(i);
49 | }
50 | break;
51 | }
52 | case 2:
53 | {
54 | for(int i=4;i<=9;i++)
55 | {
56 | Myhide(i);
57 | }
58 | Myshow(10);Myshow(11);
59 | for(int i=12;i<=17;i++)
60 | {
61 | Myhide(i);
62 | }
63 | break;
64 | }
65 | case 3:
66 | {
67 | for(int i=4;i<=11;i++)
68 | {
69 | Myhide(i);
70 | }
71 | for(int i=12;i<=15;i++)
72 | {
73 | Myshow(i);
74 | }
75 | Myhide(16);Myhide(17);
76 | break;
77 | }
78 | default:
79 | {
80 | for(int i=4;i<=15;i++)
81 | {
82 | Myhide(i);
83 | }
84 | Myshow(16);
85 | Myshow(17);
86 | break;
87 | }
88 | }
89 | }
90 |
91 | void Q2::change(int)
92 | {
93 | int id=this->type->currentIndex();
94 | if(id==4)
95 | {
96 | if(this->itemAt(8)->widget()->isVisible())
97 | {
98 | this->itemAt(8)->widget()->hide();
99 | this->itemAt(9)->widget()->hide();
100 | }
101 | if(this->itemAt(2)->widget()->isVisible())
102 | {
103 | this->itemAt(2)->widget()->hide();
104 | this->itemAt(3)->widget()->hide();
105 | }
106 | }
107 | else if(id==6)
108 | {
109 | if(this->itemAt(2)->widget()->isVisible())
110 | {
111 | this->itemAt(2)->widget()->hide();
112 | this->itemAt(3)->widget()->hide();
113 | }
114 | if(!this->itemAt(8)->widget()->isVisible())
115 | {
116 |
117 | this->itemAt(8)->widget()->show();
118 | this->itemAt(9)->widget()->show();
119 | }
120 | }
121 | else
122 | {
123 | if(this->itemAt(8)->widget()->isVisible())
124 | {
125 | this->itemAt(8)->widget()->hide();
126 | this->itemAt(9)->widget()->hide();
127 | }
128 | if(!this->itemAt(2)->widget()->isVisible())
129 | {
130 | this->itemAt(2)->widget()->show();
131 | this->itemAt(3)->widget()->show();
132 | }
133 | }
134 | return;
135 | }
136 |
137 |
138 |
139 | void Q2::Operator_Slots(int)
140 | {
141 | int id=this->Operator->currentIndex();
142 | if(id==0)
143 | {
144 | Myhide(4);Myhide(5);Myhide(8);Myhide(9);
145 | Myhide(10);Myhide(11);Myhide(12);Myhide(13);
146 | Myshow(6);Myshow(7);Myshow(0);Myshow(1);Myshow(2);Myshow(3);
147 | }
148 | else if(id==1)
149 | {
150 | Myhide(4);Myhide(5);Myhide(8);Myhide(9);
151 | Myshow(0);Myshow(1);Myshow(3);Myshow(6);
152 | for(int j=10;j<14;j++)
153 | Myshow(j);
154 | }
155 | else if(id==2)
156 | {
157 | Myhide(10);Myhide(11);Myhide(12);Myhide(13);
158 | Myshow(4);Myshow(5);Myshow(8);Myshow(9);
159 | Myshow(6);Myshow(7);Myshow(0);Myshow(1);Myshow(2);Myshow(3);
160 | }
161 | else if(id==3)
162 | {
163 | Myhide(6);Myhide(7);Myshow(3);Myshow(5);Myshow(8);
164 | Myhide(10);Myhide(11);Myhide(12);Myhide(13);Myshow(9);
165 | Myshow(0);Myshow(1);Myshow(2);Myshow(4);
166 | }
167 | else
168 | {
169 | Myshow(0);Myshow(1);Myshow(2);Myshow(3);
170 | for(int i=5;i<=13;i++)
171 | {
172 | Myhide(i);
173 | }
174 | }
175 | }
176 | void Q2::Enhance_Slots(int)
177 | {
178 | int id=this->Enhance->currentIndex();
179 | if(id<3)
180 | {
181 | for(int i=4;i<=5;i++)
182 | Myshow(i);
183 | Myhide(6);Myhide(7);
184 | }
185 | else if(id==7)
186 | {
187 | for(int i=4;i<=5;i++)
188 | Myhide(i);
189 | Myshow(6);Myshow(7);
190 | }
191 | else
192 | {
193 | for(int i=4;i<=7;i++)
194 | {
195 | Myhide(i);
196 | }
197 | }
198 | }
199 | void Q2::ShowImgSize(int)
200 | {
201 | if(this->ShowSizeFlag)
202 | {
203 | Mat now=CoreModule.getResult(this->imglist->currentIndex());
204 | QMessageBox::warning(NULL,tr("图片大小提示"),QString::number(now.cols)+"*"+QString::number(now.rows),QMessageBox::Yes);
205 | }
206 | }
207 |
208 | extern CVAction action;
209 | void Q2::addPoint()
210 | {
211 | action.p.push_back(Point2f(this->pointx->text().toDouble(),this->pointy->text().toDouble()));
212 | QMessageBox::warning(NULL,tr("提示"),tr("添加成功"),QMessageBox::Yes);
213 | }
214 | void Q2::Morphology_Slots(int)
215 | {
216 | int id=this->Morphology->currentIndex();
217 | if(id<=1)
218 | {
219 | for(int i=2;i<=9;i++)
220 | Myshow(i);
221 | }
222 | else
223 | {
224 | Myshow(2);Myshow(3);
225 | Myhide(4);Myhide(5);
226 | for(int i=6;i<=9;i++)
227 | Myshow(i);
228 | }
229 | }
230 |
231 | Q2::Q2()
232 | {
233 | this->type=new QComboBox();
234 | this->Operator=new QComboBox();
235 | this->Correction=new QComboBox();
236 | this->Enhance=new QComboBox();
237 | this->imglist = new QComboBox();
238 | this->pointx =new QLineEdit();
239 | this->Morphology=new QComboBox();
240 | this->pointy=new QLineEdit();
241 | this->add=new QPushButton();
242 | this->ShowSizeFlag=false;
243 | connect(this->type,SIGNAL(activated(int)),this,SLOT(change(int)));
244 | connect(this->Operator,SIGNAL(activated(int)),this,SLOT(Operator_Slots(int)));
245 | connect(this->Correction,SIGNAL(activated(int)),this,SLOT(Correction_slots(int)));
246 | connect(this->imglist,SIGNAL(activated(int)),this,SLOT(ShowImgSize(int)));
247 | connect(this->add,SIGNAL(pressed()),this,SLOT(addPoint()));
248 | connect(this->Enhance,SIGNAL(activated(int)),this,SLOT(Enhance_Slots(int)));
249 | connect(this->Morphology,SIGNAL(activated(int)),this,SLOT(Morphology_Slots(int)));
250 | }
251 |
252 |
--------------------------------------------------------------------------------
/q2.h:
--------------------------------------------------------------------------------
1 | #ifndef Q2_H
2 | #define Q2_H
3 |
4 | #include"processmodule.h"
5 | #include
6 | #include
7 | #include
8 | #include
9 | class Q2 : public QGridLayout
10 | {
11 | Q_OBJECT
12 | public:
13 | explicit Q2();
14 | QComboBox *type;
15 | QComboBox *Operator;
16 | QComboBox *Correction;
17 | QComboBox *Enhance;
18 | QComboBox *imglist;
19 | QComboBox *Morphology;
20 | QLineEdit *pointx;
21 | QLineEdit *pointy;
22 | QPushButton *add;
23 | bool ShowSizeFlag;
24 | void Myshow(int);
25 | void Myhide(int);
26 | public slots:
27 | void Morphology_Slots(int);
28 | void Correction_slots(int);
29 | void ShowImgSize(int);
30 | void Enhance_Slots(int);
31 | void change(int);
32 | void Operator_Slots(int);
33 | void addPoint();
34 | };
35 |
36 | #endif // Q2_H
37 |
--------------------------------------------------------------------------------
/resources.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | resources/Screen.jpg
4 | resources/Code.txt
5 | resources/Code2.txt
6 |
7 |
8 |
--------------------------------------------------------------------------------
/resources/Code2.txt:
--------------------------------------------------------------------------------
1 | ImgLoad,ImgSave,PerspectiveTrans,AffineTrans,resize_s,getRotationMatrix2D_s,mirror_s,trainslation,shear_s,Rect_s,RotatedRect_s,circle_s,drawContours_s,ellipse_s,blur_s,MedianFiltering,GaussianFiltering,Laplacian_s,Canny_s,Sobel_s,Scharr_s,prewitt_s,robot_s,equalizeHist_s,Log,Gamma,equalizeHist_stretching,lut,ImageReverse,cvtColor_s,applyColorMap_s,unevenLightCompensate,Corrosion,Expanding,morphologyEx_s,Threshold_s,dft_s,horizontalProjectionMat,verticalProjectionMat,calcHist_s,HitOrMiss,thinImage,
--------------------------------------------------------------------------------
/resources/Screen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/resources/Screen.jpg
--------------------------------------------------------------------------------
/resources/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/resources/icon.icns
--------------------------------------------------------------------------------
/resources/srcpic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Markfound/CVPlatform-Qt-OpenCV/c4ab87178ec80c8140e3725155d059692775ce3d/resources/srcpic.jpg
--------------------------------------------------------------------------------
/roi.cpp:
--------------------------------------------------------------------------------
1 | #include"roi.h"
2 | void Rect_s(const Mat &SrcImg, Mat &DstImg, double x1, double y1, double x2, double y2)
3 | {
4 | DstImg = SrcImg(Rect(Point2f(x1, y1), Point2f(x2, y2)));
5 | }
6 | void RotatedRect_s(const Mat &SrcImg, Mat &DstImg, double x, double y,double size_x,double size_y, double angle)
7 | {
8 | RotatedRect rRect = RotatedRect(Point2f(x, y), Size(size_x, size_y), angle);
9 | Rect brect = rRect.boundingRect();
10 | Point2f vertices[4];
11 | rRect.points(vertices);
12 | /*rectangle(SrcImg, brect, Scalar(255, 0, 0), 2);
13 | for (int i = 0; i < 4; i++)
14 | line(SrcImg, vertices[i], vertices[(i + 1) % 4], Scalar(0, 255, 0), 2);
15 | */
16 | Mat Tem;
17 | warpAffine(SrcImg, Tem, getRotationMatrix2D(Point2f(x,y), angle, 1.0), Size(SrcImg.cols, SrcImg.rows));
18 | DstImg = Tem(brect);
19 | }
20 | void circle_s(const Mat &SrcImg, Mat &DstImg, double x, double y, double r)
21 | {
22 | Mat logo = SrcImg(Rect(Point2f(x-r, y-r), Point2f(x+r, y+r)));
23 | Mat mask = Mat::zeros(Size(2*r, 2*r), CV_8UC1); //注意这一句,创建一个同logo一样大的纯黑的mask
24 | circle(mask, Point(mask.rows / 2, mask.cols / 2), r, Scalar(255), -1, 8); //在mask中画一个向内填充的白色圆
25 | DstImg = Mat::zeros(SrcImg.size(), CV_8UC1);
26 | logo.copyTo(DstImg, mask);//将logo拷贝到imgROI上,掩码为不为0的部分起作用,为0的部分不起作用
27 | }
28 | void drawContours_s(const Mat &SrcImg, Mat &DstImg, vector pts)
29 | {
30 | Mat roi = Mat::zeros(SrcImg.size(), CV_8U);
31 | vector> contour;
32 | contour.push_back(pts);
33 | drawContours(roi, contour, 0, Scalar::all(255), -1);
34 | SrcImg.copyTo(DstImg, roi);
35 | }
36 | void ellipse_s(const Mat &SrcImg, Mat &DstImg, double x, double y, double size_x, double size_y,double angle)
37 | {
38 | DstImg = Mat::zeros(SrcImg.size(), SrcImg.type());
39 | Mat mask = Mat::zeros(SrcImg.size(), CV_8U);
40 | ellipse(mask, Point2f(x,y), Size(size_x, size_y), angle, 0, 360, Scalar(255), -1);
41 | SrcImg.copyTo(DstImg, mask);
42 | }
43 |
--------------------------------------------------------------------------------
/roi.h:
--------------------------------------------------------------------------------
1 | #ifndef ROI_H
2 | #define ROI_H
3 |
4 | #include"ProHeader.h"
5 |
6 | void Rect_s(const Mat &SrcImg, Mat &DstImg, double x1, double y1, double x2, double y2);
7 | void RotatedRect_s(const Mat &SrcImg, Mat &DstImg, double x, double y,double size_x,double size_y, double angle);
8 | void circle_s(const Mat &SrcImg, Mat &DstImg, double x, double y, double r);
9 | void drawContours_s(const Mat &SrcImg, Mat &DstImg, vector pts);
10 | void ellipse_s(const Mat &SrcImg, Mat &DstImg, double x, double y, double size_x, double size_y,double angle);
11 |
12 | #endif // ROI_H
13 |
--------------------------------------------------------------------------------
/stdc++.h:
--------------------------------------------------------------------------------
1 | // C++ includes used for precompiling -*- C++ -*-
2 |
3 | // Copyright (C) 2003-2013 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file bits/stdc++.h
26 | * This is an implementation file for a precompiled header.
27 | */
28 |
29 | // 17.4.1.2 Headers
30 |
31 | // C
32 | #ifndef _GLIBCXX_NO_ASSERT
33 | #include
34 | #endif
35 | #include
36 | #include
37 | #include
38 | #include
39 | #include
40 | #include
41 | #include
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 | #include
49 | #include
50 |
51 | #if __cplusplus >= 201103L
52 | #include
53 | #include
54 | #include
55 | //#include
56 | #include
57 | #include
58 | #include
59 | #include
60 | #include
61 | #endif
62 |
63 | // C++
64 | #include
65 | #include
66 | #include
67 | #include
68 | #include
69 | #include
70 | #include
71 | #include
72 | #include
73 | #include
74 | #include
75 | #include
76 | #include
77 | #include
78 | #include
79 | #include
80 | #include