diff --git a/runner17/Release/smokeBox.exe b/runner17/Release/smokeBox.exe index 13da305..a8c83a1 100644 Binary files a/runner17/Release/smokeBox.exe and b/runner17/Release/smokeBox.exe differ diff --git a/runner17/Release/smokeBox.pdb b/runner17/Release/smokeBox.pdb index 5804ebb..ef85868 100644 Binary files a/runner17/Release/smokeBox.pdb and b/runner17/Release/smokeBox.pdb differ diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr new file mode 100644 index 0000000..2fe6435 --- /dev/null +++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr @@ -0,0 +1,1674 @@ + + +
+ + + Qt Visual Studio Tools + + + Project Format Conversion + + + Report generated on 2024-02-21 15:59:08 + +
+
+ + Files + + + + + [Before] + [After] + + [Diff before/after] + + + [Diff before/current] + + + [Diff after/current] + + + + + + + [Before] + [After] + + [Diff before/after] + + + [Diff before/current] + + + [Diff after/current] + + + +
+
+ + Changes + + + + + + + + + + + + + + + + + + + + + + + + ]]>]]> + + + + + ]]>]]> + + + + + + + + + + ]]>]]> + + + + + ]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + true]]> + + + + + + + + + + + + + true]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + Qt4VSv1.0]]> + + + + + QtVS_v304]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + $(MSBuildProjectDirectory)\QtMsBuild]]> + + + + + + + + + + ]]> + + + + + + + + + + $(MSBuildProjectDirectory)\QtMsBuild]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)..\runner17\$(Configuration)\]]> + + + + + + + + + + smokeBoxd]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)..\runner17\$(Configuration)\]]> + + + + + + + + + + smokeBox]]> + + + + + + + + + + $(LibraryPath)]]> + + + + + + + + + + $(IncludePath)]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)..\runner17\$(Configuration)\]]> + + + + + + + + + + smokeBoxd]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)..\runner17\$(Configuration)\]]> + + + + + + + + + + smokeBox]]> + + + + + + + + + + $(LibraryPath)]]> + + + + + + + + + + $(IncludePath)]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + ]]> + + + + + msvc2017_qt-5.9.4-x64]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + msvc2017_qt-5.9.4-x64]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;]]>]]> + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;]]>]]> + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;]]>]]> + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]> + + + + + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]> + + + + + + + + + + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]> + + + + + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;Qt5QuickWidgetsd.lib;Qt5SerialPortd.lib;Qt5WebSocketsd.lib;Qt5Widgetsd.lib;Qt5Xlsxd]]>]]> + + + + + Qt5Xlsxd]]>]]> + + + + + + + + + + qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Network.lib;Qt5QuickWidgets.lib;Qt5SerialPort.lib;Qt5WebSockets.lib;Qt5Widgets.lib;Qt5Xlsx]]>]]> + + + + + Qt5Xlsx]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + $(]]>]]> + + + + + $(]]>]]> + + + + + + + + + + $(]]>]]> + + + + + $(]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + core;network;gui;widgets;serialport;websockets;winextras;quickwidgets]]> + + + + + + + + + + + + + core;network;gui;widgets;serialport;websockets;winextras;quickwidgets]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]> + + + + + + + + + + + + + PATH=$(QTDIR)\bin%3b$(PATH)]]> + + + + + + + + + + + + + C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]> + + + + + + + + + + + + + PATH=$(QTDIR)\bin%3b$(PATH)]]> + + + + + + + +
+ + Dir and FileName]]> + + + + + + + + + + + + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)]]> + + + + + + + + + + moc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles]]> + + + + + + + + + + ui_%(Filename).h]]> + + + + + + + + + + + + + .\GeneratedFiles]]> + + + + + + + + + + qrc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)]]> + + + + + + + + + + moc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles]]> + + + + + + + + + + ui_%(Filename).h]]> + + + + + + + + + + + + + .\GeneratedFiles]]> + + + + + + + + + + qrc_%(Filename).cpp]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)]]> + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)]]> + + + + + + + + + + + + + .\GeneratedFiles\ui_%(Filename).h]]> + + + + + + + + + + + + + .\GeneratedFiles\qrc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)]]> + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)]]> + + + + + + + + + + + + + .\GeneratedFiles\ui_%(Filename).h]]> + + + + + + + + + + + + + .\GeneratedFiles\qrc_%(Filename).cpp]]> + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]> + + + + + + + + + + ]]> + + + + + + + +
+
+
+ +
+
+ diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj index 4d3a589..0cb2123 100644 --- a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj +++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj @@ -12,8 +12,9 @@ {B12702AD-ABFB-343A-A199-8E24837244A3} - Qt4VSv1.0 + QtVS_v304 10.0.17763.0 + $(MSBuildProjectDirectory)\QtMsBuild @@ -25,93 +26,105 @@ v141 - - $(MSBuildProjectDirectory)\QtMsBuild + + + msvc2017_64-5.9.4 + core;gui;network;quickwidgets;serialport;websockets;widgets;winextras - - $(SolutionDir)..\runner17\$(Configuration)\ - smokeBoxd - - - $(SolutionDir)..\runner17\$(Configuration)\ - smokeBox - $(LibraryPath) - $(IncludePath) + + msvc2017_64-5.9.4 + core;network;gui;widgets;serialport;websockets;winextras;quickwidgets - + - - - + + + + $(SolutionDir)..\runner17\$(Configuration)\ + smokeBoxd + D:\Qt\5.9.4\msvc2017_64\include;$(IncludePath) + D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;$(ExecutablePath) + D:\Qt\5.9.4\msvc2017_64\lib;$(LibraryPath) + + + $(SolutionDir)..\runner17\$(Configuration)\ + smokeBox + D:\Qt\5.9.4\msvc2017_64\lib;$(LibraryPath) + $(IncludePath) + - UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories) + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;%(PreprocessorDefinitions) + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories) Disabled ProgramDatabase MultiThreadedDebugDLL true + false Windows $(OutDir)smokeBoxd.exe - $(QTDIR)\lib;$(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;%(AdditionalLibraryDirectories) + $(MVCAM_COMMON_RUNENV)\Libraries\win64;D:\Qt\5.9.4\Qt5.9.4\5.9.4\msvc2017_64\lib;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;%(AdditionalLibraryDirectories) true - qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;Qt5QuickWidgetsd.lib;Qt5SerialPortd.lib;Qt5WebSocketsd.lib;Qt5Widgetsd.lib;Qt5Xlsxd.lib;opencv_world341d.lib;MvCameraControl.lib;numStatisticAlgod.lib;lpSeriald.lib;libzkqd.lib;LxCameraApi.lib;%(AdditionalDependencies) + Qt5Xlsxd.lib;opencv_world341d.lib;MvCameraControl.lib;numStatisticAlgod.lib;lpSeriald.lib;libzkqd.lib;LxCameraApi.lib;%(AdditionalDependencies) - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp Moc'ing %(Identity)... - .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories) - UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions) + .\GeneratedFiles\$(ConfigurationName) + moc_%(Filename).cpp Uic'ing %(Identity)... - .\GeneratedFiles\ui_%(Filename).h + .\GeneratedFiles + ui_%(Filename).h Rcc'ing %(Identity)... - .\GeneratedFiles\qrc_%(Filename).cpp + .\GeneratedFiles + qrc_%(Filename).cpp - UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories) + UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) + .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories) ProgramDatabase MultiThreadedDLL true + false Windows $(OutDir)smokeBox.exe - $(QTDIR)\lib;$(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;$(SolutionDir)..\3rdparty\qxlsx\lib;$(SolutionDir)..\tpvs17\x64\Release;%(AdditionalLibraryDirectories) + $(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;$(SolutionDir)..\3rdparty\qxlsx\lib;$(SolutionDir)..\tpvs17\x64\Release;%(AdditionalLibraryDirectories) true - qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Network.lib;Qt5QuickWidgets.lib;Qt5SerialPort.lib;Qt5WebSockets.lib;Qt5Widgets.lib;Qt5Xlsx.lib;opencv_world341.lib;MvCameraControl.lib;numStatisticAlgo.lib;lpSerial.lib;libzkq.lib;LxCameraApi.lib;%(AdditionalDependencies) + Qt5Xlsx.lib;opencv_world341.lib;MvCameraControl.lib;numStatisticAlgo.lib;lpSerial.lib;libzkq.lib;LxCameraApi.lib;%(AdditionalDependencies) - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp Moc'ing %(Identity)... - .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories) - UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions) + .\GeneratedFiles\$(ConfigurationName) + moc_%(Filename).cpp Uic'ing %(Identity)... - .\GeneratedFiles\ui_%(Filename).h + .\GeneratedFiles + ui_%(Filename).h Rcc'ing %(Identity)... - .\GeneratedFiles\qrc_%(Filename).cpp + .\GeneratedFiles + qrc_%(Filename).cpp @@ -149,25 +162,16 @@ - - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - + - - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - + - - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - + @@ -179,24 +183,19 @@ - - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx - + - - - + - + \ No newline at end of file diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user index 7a20d55..be679b1 100644 --- a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user +++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user @@ -2,15 +2,17 @@ - C:\Qt\Qt5.9.4\5.9.4\msvc2017_64 $(OutDir)smokeBoxd.exe WindowsLocalDebugger - PATH=$(QTDIR)\bin%3b$(PATH) - C:\Qt\Qt5.9.4\5.9.4\msvc2017_64 $(OutDir)smokeBox.exe WindowsLocalDebugger - PATH=$(QTDIR)\bin%3b$(PATH) + + + 2024-02-21T09:18:16.3023274Z + + + 2024-02-25T01:36:44.5600966Z \ No newline at end of file diff --git a/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp b/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp new file mode 100644 index 0000000..d9d3ff9 --- /dev/null +++ b/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp @@ -0,0 +1,483 @@ +#pragma execution_character_set("utf-8") +#include "CategoryMatcher.h" + +CategoryMatcher::CategoryMatcher(QObject *parent) + : QObject(parent) +{ + m_ilmatch = ILMatchPtr(__uuidof(LMatch)); + m_ilmatchF = ILMatchPtr(__uuidof(LMatch)); + m_display = ILDisplayPtr(__uuidof(LDisplay)); + m_text = ILTextPtr(__uuidof(LText)); + m_textSys= ILSystemPtr(__uuidof(LSystem)); + initILMatchParam(QCoreApplication::applicationDirPath() + MATCHER_CONFIG); + setILMatch(m_matchParam); + qDebug() << "init CategoryMatcher successed"; + + m_text->Alignment = LPVAlignment::LPVAlignLeft; // ÉèÖÃÎı¾»æÖÆÊ±µÄ¶ÔÆë·½Ê½ + m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(0, 255, 0)); // ÉèÖÃÎı¾µÄÑÕÉ« + m_textSys->SetFontHeight(m_text, 80); // ÉèÖÃ×ÖÌå¸ß¶È + m_textSys->SetFontFamily(m_text, "Microsoft YaHei"); // ÉèÖÃ×ÖÌåÀàÐÍ + m_text->PosX = 100; + m_text->PosY = 100; // ÉèÖÃÎı¾»æÖÆÊ±µÄλÖà +} + +CategoryMatcher::~CategoryMatcher() +{ + +} + +void CategoryMatcher::initILMatchParam(const QString& path) +{ + QString fileMyself = path; + QFile file(fileMyself); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + qWarning() << "´ò¿ªÎļþʧ°Ü£¡"; + return; + } + QByteArray arr = file.readAll(); + file.close(); + if (arr.isEmpty()) + { + qWarning() << "ÄÚÈÝΪ¿Õ"; + return; + } + + QJsonParseError err; + QJsonDocument doc = QJsonDocument::fromJson(arr, &err); + if (doc.isEmpty()) + { + qWarning() << err.errorString(); //´òӡʧ°ÜÐÅÏ¢ + return; + } + + QJsonObject jsMyself = doc.object(); + QJsonObject MatchParamObj = jsMyself.value("MatchParam").toObject(); + if (!MatchParamObj.isEmpty()) { + m_matchParam.MaxCount = MatchParamObj.value("MaxCount").toInt(); + m_matchParam.ScaleTolerance = MatchParamObj.value("ScaleTolerance").toInt(); + m_matchParam.AngleTolerance = MatchParamObj.value("AngleTolerance").toInt(); + m_matchParam.AcceptScore = MatchParamObj.value("ScoreThresh").toInt(); + m_matchParam.StrictScore = MatchParamObj.value("StrictScore").toBool(); + m_matchParam.UseCache = MatchParamObj.value("UseCache").toBool(); + } +} + +void CategoryMatcher::setILMatch(const MatchParam& matchParam) +{ + m_ilmatch->MaxCount = m_matchParam.MaxCount; + m_ilmatch->ScaleTolerance = m_matchParam.ScaleTolerance; + m_ilmatch->AngleTolerance = m_matchParam.AngleTolerance; + m_ilmatch->StrictScore = m_matchParam.StrictScore; + m_ilmatch->UseCache = m_matchParam.UseCache; + m_ilmatch->AcceptScore = m_matchParam.AcceptScore; + + + m_ilmatchF->MaxCount = m_matchParam.MaxCount; + m_ilmatchF->ScaleTolerance = m_matchParam.ScaleTolerance; + m_ilmatchF->AngleTolerance = m_matchParam.AngleTolerance; + m_ilmatchF->StrictScore = m_matchParam.StrictScore; + m_ilmatchF->UseCache = m_matchParam.UseCache; + m_ilmatchF->AcceptScore = m_matchParam.AcceptScore; + +} + + +bool CategoryMatcher::smokeMatch(const QString& typeNo, ILImagePtr image, int id) +{ + QMap resultsPair; + bool bRlt = smokeMatch(typeNo, image, resultsPair,id); + drawImage(image, resultsPair); + return bRlt; +} + +bool CategoryMatcher::smokeMatch(const QString& typeNo, const ILImagePtr ilImgPtr, + QMap& resultsMap, int id) +{ + TemplateObject templateObj; + QString templateImgFolderPath = TYPE_TEMPLATE_PATH; + + //¿ÉÄÜ´æÔÚÎÊÌ⣺֮ǰµÄÄ£°åÉè¼Æ¡£ºó׺´øÁ˱ðµÄÊý¾Ý¡£ÐèÑéÖ¤ + // Ä£°åÎļþ¸ñʽ£ºÑÌÏä±àÂë/ÑÌÏä±àÂë-Ä£°å±àÂë + // Ä£°å±àÂ룺ģ°åÀàÐÍ+Ä£°å±àºÅ + // Ä£°åÀàÐÍ£º1Ϊ´óÄ£°å£¨Ä£°åºÍÆ¥Åäͼ¾ù·ÅËõ50%£©£¬2ΪСģ°å + // ÀýÈ磺1ÀàÄ£°åµÄµÚ1¸öÄ£°å£º11 + // ÖлªÓ²310102µÄ2ÀàÄ£°åµÄµÚ1¸öÄ£°å£º310102-21 + QString folderPath = QString("%1\\%2").arg(templateImgFolderPath).arg(typeNo); + QString str; + if (getTemplateImgFileInfo(folderPath, templateObj)) + { + str = QString("[%1]:Get TemplateImg OK!").arg(id); + qDebug() < vecMatchSroreMax; + QVector vecMatchRltsMax; + QList keys = templateObj.uniqueKeys(); + int templateLevelCount = keys.length(); + str = QString("[%1]:templateLevelCount =%2").arg(id).arg(templateLevelCount); + qDebug() << str; + + // ±éÀú²»Í¬Ä£°å¼¶±ð + for each (int level in keys) + { + QVector vecMatchSrore; + QVector vecMatchRlts; + resultsMap.insert(level, nullptr); + QMap strScoreMap = templateObj.value(level); + for (QMap::iterator it = strScoreMap.begin(); it != strScoreMap.end(); ++it) + { + QString templateImgPath = it.key(); + ILImagePtr ilTemplatePtr(__uuidof(LImage)); + ilTemplatePtr->Load(templateImgPath.toStdString().c_str()); + if (ilTemplatePtr->Void()) + { + QString outStr = templateImgPath + " is empty!"; + qDebug() << outStr; + continue; + } + + m_ilmatch->Learn(ilTemplatePtr, nullptr); + ILImagePtr img(__uuidof(LImage)); + ILImagePtr tempImage(__uuidof(LImage)); + //ÓÉÓÚÈç¹û½Ç¶È¿ªµ½¡À180£¬²¿·ÖÆ¥Åäʱ¼ä¹ý³¤£¬¹Ê¶øÓÃÁ½´ÎÄ£°åÆ¥Å䣬·Ö±ðÆ¥ÅäÄ£°åºÍÄ£°åÐýת180¶ÈÇé¿ö + ILImageArithmPtr imgArithmF(__uuidof(LImageArithm)); + imgArithmF->Flip(ilTemplatePtr, LPVFlipType::LPVFlipH, tempImage); + imgArithmF->Flip(tempImage, LPVFlipType::LPVFlipV, tempImage); + m_ilmatchF->Learn(tempImage, nullptr); + + ILMatchResultsPtr matchResults, matchResultsF; + + ILRotRectRegionPtr rectRoi(__uuidof(LRotRectRegion)); + if (level == 1) // ´óÄ£°å + { + ILImageArithmPtr imgArithm(__uuidof(LImageArithm)); + imgArithm->Resize(ilImgPtr, 0.5, 0.5, LPVInterNearest, img); + rectRoi->SetPlacement(800, 500, 500, 1250, 600); + } + else { + + rectRoi->SetPlacement(1600, 1000, 2500, 1200, 0); + } + qInfo() << "setrectRoi end"; + LPVErrorCode err = m_ilmatch->Match((level == 1 ? img : ilImgPtr), rectRoi, &matchResults); + LPVErrorCode errF = m_ilmatchF->Match((level == 1 ? img : ilImgPtr), rectRoi, &matchResultsF); + if (err < LPVErrorCode::LPVNoError || errF < LPVErrorCode::LPVNoError) { + str = QString("[%1]:Match Failed;templateImgPath = %2").arg(id).arg(templateImgPath); + qDebug() << str; + continue; // match failed + } + + int objCount = matchResults->Count() + matchResultsF->Count(); + if (objCount > 0) + { + double valueMaxScore = -1; + ILMatchResultPtr matchRltPtr; + int indexMaxScore = 0; + QVector matchSrore; + + // Ä£°å·½ÏòµÄÆ¥Åä½á¹û¡ª¡ªÐýת180¶ÈÆ¥Åä½á¹û£¬×é³ÉÒ»¸öÍêÕûµÄÆ¥Åä½á¹ûÖµ + for (int i = 0; i < matchResults->Count(); i++) + { + matchSrore.push_back(matchResults->Item(i)->Score); + } + for (int i = 0; i < matchResultsF->Count(); i++) + { + matchSrore.push_back(matchResultsF->Item(i)->Score); + } + + //Ñ¡ÔñÆÀ·Ö×î¸ßµÄÆ¥Åä½á¹û + auto maxPos = std::max_element(matchSrore.begin(), matchSrore.end()); + valueMaxScore = *maxPos; + indexMaxScore = maxPos - matchSrore.begin(); + + vecMatchSrore.push_back(valueMaxScore); + if (indexMaxScore < matchResults->Count()) + { + vecMatchRlts.push_back(matchResults->Item(indexMaxScore)); + } + else + { + vecMatchRlts.push_back(matchResultsF->Item(indexMaxScore - matchResults->Count())); + } + } + + } + if (vecMatchSrore.isEmpty()) + { + str = QString("[%1]:Level: %1 match failed!").arg(id).arg(level); + qDebug() << str; + return false; + } + else + { + // Ñ¡Ôñ¸ÃÄ£°åµÈ¼¶ÏÂÆÀ·Ö×î¸ßµÄÆ¥Åä½á¹û + auto maxMatchScorePos = std::max_element(vecMatchSrore.begin(), vecMatchSrore.end()); + auto maxIndex = maxMatchScorePos - vecMatchSrore.begin(); + vecMatchSroreMax.push_back(*maxMatchScorePos); + //vecMatchRltsMax.push_back(vecMatchRlts.at(maxIndex)); + resultsMap[level]=vecMatchRlts.at(maxIndex); + } + } + } + else + { + str = QString("[%1]:Find templateImage failed! Folder = %2").arg(id).arg(folderPath); + qDebug() << str; + return false; + } + return true; +} + +bool CategoryMatcher::getTemplateImgFileInfo(const QString& folderPath, TemplateObject& templateObject) +{ + templateObject.clear(); + QDir fileDir(folderPath); + if (!fileDir.exists()) + { + qWarning() << folderPath << " is not exist"; + return false; + } + for each(QFileInfo imgFileInfo in fileDir.entryInfoList(QDir::Filter::Files | QDir::NoDotAndDotDot)) + { + QString fileName = imgFileInfo.fileName(); + + if (fileName.endsWith(".png") || fileName.endsWith(".PNG") + || fileName.endsWith(".BMP") || fileName.endsWith(".bmp") + || fileName.endsWith(".jpeg") || fileName.endsWith(".JPEG") + || fileName.endsWith(".jpg") || fileName.endsWith(".JPG")) + { + QStringList strList = imgFileInfo.baseName().split("-"); + + QString templateImgPath = imgFileInfo.filePath(); //Ïà¶Ô·¾¶£¬±ÜÃâ·¾¶´æÔÚÖÐÎÄʱ¶Áȡʧ°Ü + int level = strList.last().mid(0, 1).toInt(); + templateObject[level].insert(templateImgPath, 70); + + + + ////֮ǰµÄÄ£°å¸ñʽ£¬ÀýÈ磺templateImg/51520312/template_0101_65 + //if (strList.first() == "template" && strList.length() == 3) + //{ + // int scoreThresh = strList.last().toInt(); + // QString templateImgPath = imgFileInfo.filePath(); //Ïà¶Ô·¾¶£¬±ÜÃâ·¾¶´æÔÚÖÐÎÄʱ¶Áȡʧ°Ü + // std::pair imgScorePair(templateImgPath, scoreThresh); + // QString serialNum = strList[1]; + // if (serialNum.length() == 4) + // { + // int level = serialNum.mid(0, 2).toInt(); + // templateObject[level].insert(templateImgPath, scoreThresh); + // } + //} + } + } + if (templateObject.isEmpty()) + { + return false; + } + return true; +} + + +void CategoryMatcher::drawImage(ILImagePtr image, QMap resultsMap) +{ + if (image->Void()) + { + return; + } + + std::stringstream textStream(""); + //ÔÚDisplayÉÏ»æÖÆÍ¼Ïñ+½á¹û + m_display->SetImage(image); + m_display->RemoveAllObjects(); + QString tittleStr,rltStr; + + bool bRlt = false; + for (auto iter = resultsMap.begin(); iter != resultsMap.end(); iter++) + { + ILMatchResultPtr matchRlt = iter.value(); + if (matchRlt == nullptr) + { + continue; + } + + bRlt = true; + double score = matchRlt->GetScore(); + rltStr.append(QString("\n Level %1 score: %2").arg(iter.key()).arg(score)); + + if (iter.key() == 1) + { + ILRotRectRegionPtr m_rect(__uuidof(LRotRectRegion)); + m_rect->SetPlacement(matchRlt->GetCenter()->X * 2, matchRlt->GetCenter()->Y * 2 + , matchRlt->GetRect()->Width * 2, matchRlt->GetRect()->Height * 2, matchRlt->GetRect()->Angle); + m_textSys->SetPenWidth(m_rect, 3); + m_textSys->SetPenColor(m_rect, m_textSys->GetColorRef(0, 255, 0)); + m_display->AddObject(m_rect, 0); + } + else + { + m_textSys->SetPenWidth(matchRlt, 3); + m_textSys->SetPenColor(matchRlt, m_textSys->GetColorRef(0, 255, 0)); + m_display->AddObject(matchRlt, LPVPatDrawFlags::LPVPatDrawBoundingRect); + } + + } + ILRotRectRegionPtr m_rect(__uuidof(LRotRectRegion)); + m_rect->SetPlacement(1600, 1000, 2500, 1200, 0); + m_textSys->SetPenWidth(m_rect, 3); + m_textSys->SetPenColor(m_rect, m_textSys->GetColorRef(0, 255, 0)); + m_display->AddObject(m_rect, 0); + if (bRlt) + { + m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(0, 255, 0)); + tittleStr = QString("Match successful! Total level Count: %1").arg(resultsMap.keys().length()); + } + else + { + m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(255, 0, 0)); + tittleStr = QString("Match failed! Total level Count: %1").arg(resultsMap.keys().length()); + } + textStream << tittleStr.toStdString(); + textStream << rltStr.toStdString(); + m_text->Text = textStream.str().c_str(); + m_display->AddObject(m_text,0); +} + +void CategoryMatcher::saveResultsImage(const QString& filePath) +{ + std::wstring str = filePath.toStdWString(); + m_display->SaveSceneToFile(str.c_str(), 1, 1); +} + +void CategoryMatcher::drawImage(const cv::Mat& imgMatSrc, cv::Mat& rltCvImg, + std::pair> templateLevelAndvecMatchRltPtr) +{ + if (imgMatSrc.empty()) { + return; + } + ensureColorBGRImg(imgMatSrc, rltCvImg); + int level = 1; + int templateLevel = templateLevelAndvecMatchRltPtr.first; + QVector vecMatchRltPtr = templateLevelAndvecMatchRltPtr.second; + QString rltStr; + cv::Scalar textColor(0, 255, 0); + if (!vecMatchRltPtr.isEmpty() && (vecMatchRltPtr.length() == templateLevel)) + { + rltStr = QString("Match successful! Total level: %1").arg(templateLevel); + } + else + { + textColor = cv::Scalar(0, 0, 255); + rltStr = QString("Match failed! Total level: %1").arg(templateLevel); + } + int fontFace = cv::FONT_HERSHEY_DUPLEX; + double fontScale = 2.5; + int textThickness = 2; + int baseLine = 0; + int startX = 50; + int startY = 100; + cv::Size textSize = cv::getTextSize(rltStr.toStdString(), fontFace, fontScale, textThickness, &baseLine); + cv::putText(rltCvImg, rltStr.toStdString(), cv::Point(startX, startY), + fontFace, fontScale, textColor, textThickness); + rltStr.clear(); + for each(ILMatchResultPtr matchRltPtr in vecMatchRltPtr) + { + double score = matchRltPtr->GetScore(); + rltStr.append(QString(" Level %1 score: %2").arg(level++).arg(score)); + ILRectPtr ilRectPtr = matchRltPtr->GetRect(); + ILPointsPtr ilPointsPtr = ilRectPtr->GetPoints(); + cv::Point2f vertices[4]; + int count = ilPointsPtr->Count(); + if (count != 4) + { + continue; + } + for (int i = 0; i < count; ++i) + { + ILPointPtr ilPointPtr = ilPointsPtr->Item(i); + vertices[i] = cv::Point2f(ilPointPtr->GetX(), ilPointPtr->GetY()); + } + for (int i = 0; i < 4; ++i) + { + cv::line(rltCvImg, vertices[i], vertices[(i + 1) % 4], cv::Scalar(255, 0, 0), 8); + } + } + if (!rltStr.isEmpty()) + { + cv::putText(rltCvImg, rltStr.toStdString(), + cv::Point(startX, startY + textSize.height + 20), + fontFace, fontScale, textColor, textThickness); + } +} + +bool ensureGrayImg(const cv::Mat& img, cv::Mat& gray) +{ + if (img.channels() == 3) + { + if (img.depth() == CV_8U) { + cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY); + } + else { + cv::Mat channels[3]; + split(img, channels); + gray = channels[2] * 0.299 + channels[1] * 0.587 + channels[0] * 0.114; + } + return true; + } + else if (img.channels() == 4) + { + if (img.depth() == CV_8U) { + cvtColor(img, gray, cv::COLOR_BGRA2GRAY); + } + else { + cv::Mat channels[4]; + cv::split(img, channels); + gray = channels[2] * 0.299 + channels[1] * 0.587 + channels[0] * 0.114; + } + return true; + } + else if (img.channels() == 1) + { + gray = img; + return false; + } + else + { + _ASSERTE(false && "unsupported image conversion."); + return false; + } +} + +bool ensureColorBGRImg(const cv::Mat& img, cv::Mat& color) +{ + if (img.channels() == 3) { + color = img; + return false; + } + else if (img.channels() == 4) { + if (img.depth() == CV_8U) { + cvtColor(img, color, cv::COLOR_BGRA2BGR); + } + else { + static int from4_to3[] = { 0,0,1,1,2,2 }; + if (color.cols != img.cols || color.rows != img.rows || color.type() != CV_MAKE_TYPE(img.depth(), 3)) + color = cv::Mat(img.rows, img.cols, CV_MAKE_TYPE(img.depth(), 3)); + mixChannels(img, color, from4_to3, 3); + } + return true; + } + else if (img.channels() == 1) { + if (img.depth() == CV_8U) { + cvtColor(img, color, cv::COLOR_GRAY2BGR); + } + else { + static int from1_to3[] = { 0,0,0,1,0,2 }; + if (color.cols != img.cols || color.rows != img.rows || color.type() != CV_MAKE_TYPE(img.depth(), 3)) + color = cv::Mat(img.rows, img.cols, CV_MAKE_TYPE(img.depth(), 3)); + mixChannels(img, color, from1_to3, 3); + } + return true; + } + else { + _ASSERTE(false && "unsupported image conversion."); + return false; + } +} \ No newline at end of file diff --git a/tpvs17/lpSerial/lp_serial.qtvscr b/tpvs17/lpSerial/lp_serial.qtvscr new file mode 100644 index 0000000..85701d7 --- /dev/null +++ b/tpvs17/lpSerial/lp_serial.qtvscr @@ -0,0 +1,1227 @@ + + +
+ + + Qt Visual Studio Tools + + + Project Format Conversion + + + Report generated on 2024-02-21 15:59:08 + +
+
+ + Files + + + + + [Before] + [After] + + [Diff before/after] + + + [Diff before/current] + + + [Diff after/current] + + + + + + + [Before] + [After] + + [Diff before/after] + + + [Diff before/current] + + + [Diff after/current] + + + +
+
+ + Changes + + + + + + + + + + + + + + + + + + + + + + + + ]]>]]> + + + + + ]]>]]> + + + + + + + + + + ]]>]]> + + + + + ]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + Qt4VSv1.0]]> + + + + + QtVS_v304]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + $(MSBuildProjectDirectory)\QtMsBuild]]> + + + + + + + + + + ]]> + + + + + + + + + + $(MSBuildProjectDirectory)\QtMsBuild]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)$(Platform)\$(Configuration)\]]> + + + + + + + + + + $(ProjectName)d]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)$(Platform)\$(Configuration)\]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)$(Platform)\$(Configuration)\]]> + + + + + + + + + + $(ProjectName)d]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + $(SolutionDir)$(Platform)\$(Configuration)\]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + ]]> + + + + + msvc2017_qt-5.9.4-x64]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + msvc2017_qt-5.9.4-x64]]> + + + + + + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + .;.\GeneratedFiles]]>]]> + + + + + .;.\GeneratedFiles]]>]]> + + + + + + + + + + .;.\GeneratedFiles]]>]]> + + + + + .;.\GeneratedFiles]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + qtmaind.lib;Qt5Cored.lib;Qt5SerialPortd.lib;%]]>]]> + + + + + %]]>]]> + + + + + + + + + + qtmain.lib;Qt5Core.lib;Qt5SerialPort.lib;%]]>]]> + + + + + %]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + $(QTDIR)\lib;%]]>]]> + + + + + %]]>]]> + + + + + + + + + + $(QTDIR)\lib;%]]>]]> + + + + + %]]>]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + core;serialport]]> + + + + + + + + + + + + + core;serialport]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + ]]> + + + + + + + C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]> + + + + + ]]> + + + + + + + PATH=$(QTDIR)\bin%3b$(PATH)]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]> + + + + + + + + + + PATH=$(QTDIR)\bin%3b$(PATH)]]> + + + + + + + + + + ]]> + + + + + + + +
+ + Dir and FileName]]> + + + + + + + + + + + + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)]]> + + + + + + + + + + moc_%(Filename).cpp]]> + + + + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)]]> + + + + + + + + + + moc_%(Filename).cpp]]> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions)]]> + + + + + + + + + + .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)]]> + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]> + + + + + + + + + + + + + UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions)]]> + + + + + + + + + + .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)]]> + + + + + + + + + + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]> + + + + + + + +
+
+
+ +
+
+ diff --git a/tpvs17/lpSerial/lp_serial.vcxproj b/tpvs17/lpSerial/lp_serial.vcxproj index 88c4abe..b0b04e7 100644 --- a/tpvs17/lpSerial/lp_serial.vcxproj +++ b/tpvs17/lpSerial/lp_serial.vcxproj @@ -31,50 +31,56 @@ {10198138-A8F3-408B-9359-C33C121E7EC2} - Qt4VSv1.0 + QtVS_v304 10.0.17763.0 lpSerial + $(MSBuildProjectDirectory)\QtMsBuild DynamicLibrary - v142 + v141 DynamicLibrary v141 - - $(MSBuildProjectDirectory)\QtMsBuild - - - $(SolutionDir)$(Platform)\$(Configuration)\ - $(ProjectName)d + + + 5.9.4_msvc2017_64 + core;serialport - - $(SolutionDir)$(Platform)\$(Configuration)\ + + msvc2017_qt-5.9.4-x64 + core;serialport - + - - - + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(ProjectName)d + + + $(SolutionDir)$(Platform)\$(Configuration)\ + true UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) + .;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) Disabled ProgramDatabase MultiThreadedDebugDLL @@ -83,22 +89,21 @@ Windows $(OutDir)\$(TargetName)$(TargetExt) - $(QTDIR)\lib;%(AdditionalLibraryDirectories) + %(AdditionalLibraryDirectories) true - qtmaind.lib;Qt5Cored.lib;Qt5SerialPortd.lib;%(AdditionalDependencies) + %(AdditionalDependencies) - UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp Moc'ing %(Identity)... + .\GeneratedFiles\$(ConfigurationName) + moc_%(Filename).cpp true UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) + .;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) MultiThreadedDLL true @@ -106,26 +111,23 @@ Windows $(OutDir)\$(TargetName)$(TargetExt) - $(QTDIR)\lib;%(AdditionalLibraryDirectories) + %(AdditionalLibraryDirectories) false - qtmain.lib;Qt5Core.lib;Qt5SerialPort.lib;%(AdditionalDependencies) + %(AdditionalDependencies) - UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions) - .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories) - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp Moc'ing %(Identity)... + .\GeneratedFiles\$(ConfigurationName) + moc_%(Filename).cpp - - - + - + \ No newline at end of file diff --git a/tpvs17/lpSerial/lp_serial.vcxproj.user b/tpvs17/lpSerial/lp_serial.vcxproj.user index 3134de2..3bd3721 100644 --- a/tpvs17/lpSerial/lp_serial.vcxproj.user +++ b/tpvs17/lpSerial/lp_serial.vcxproj.user @@ -1,12 +1,12 @@  - - C:\Qt\Qt5.9.4\5.9.4\msvc2017_64 - PATH=$(QTDIR)\bin%3b$(PATH) + + + + 2024-02-21T09:24:05.3343044Z - - C:\Qt\Qt5.9.4\5.9.4\msvc2017_64 - PATH=$(QTDIR)\bin%3b$(PATH) + + 2024-02-21T09:05:09.2440028Z \ No newline at end of file diff --git a/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj b/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj index 5e5b675..d915ade 100644 --- a/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj +++ b/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj @@ -20,7 +20,9 @@ - + + D:\Qt\5.9.4\msvc2017_64\include;D:\Qt\5.9.4\msvc2017_64\include\QtCore;%(AdditionalIncludeDirectories) + @@ -51,7 +53,7 @@ StaticLibrary true - v142 + v141 MultiByte @@ -82,6 +84,7 @@ .lib $(ProjectName)d + D:\Qt\5.9.4\msvc2017_64\include;$(IncludePath) .lib