├── .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 | 18 | 19 | 20 | 0 21 | 0 22 | 677 23 | 22 24 | 25 | 26 | 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 81 | #include 82 | #include 83 | #include 84 | #include 85 | #include 86 | #include 87 | #include 88 | #include 89 | #include 90 | #include 91 | #include 92 | #include 93 | #include 94 | #include 95 | #include 96 | 97 | #if __cplusplus >= 201103L 98 | #include 99 | #include 100 | #include 101 | #include 102 | #include 103 | #include 104 | #include 105 | #include 106 | #include 107 | #include 108 | #include 109 | #include 110 | #include 111 | #include 112 | #include 113 | #include 114 | #include 115 | #include 116 | #include 117 | #endif 118 | 119 | 120 | --------------------------------------------------------------------------------