Compare commits

...

2 Commits

Author SHA1 Message Date
18e2f3080d dual cam verssion 2024-12-22 21:28:09 +08:00
fd7df4545e double mask + memory overflow 7 2024-12-22 17:17:07 +08:00
12 changed files with 399 additions and 270 deletions

View File

@ -528,12 +528,14 @@ debug\moc_widget.cpp: widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
debug\moc_predefs.h \ debug\moc_predefs.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\bin\moc.exe ..\..\..\..\Qt\6.7.3\msvc2022_64\bin\moc.exe
C:\Qt\6.7.3\msvc2022_64\bin\moc.exe $(DEFINES) --compiler-flavor=msvc --include C:/Users/Administrator/Documents/cotton_double/debug/moc_predefs.h -IC:/Qt/6.7.3/msvc2022_64/mkspecs/win32-msvc -IC:/Users/Administrator/Documents/cotton_double -IC:/Users/Administrator/Desktop/cotton_double/Include -ID:/opencv/opencv410-vs22/include -IC:/Qt/6.7.3/msvc2022_64/include -IC:/Qt/6.7.3/msvc2022_64/include/QtWidgets -IC:/Qt/6.7.3/msvc2022_64/include/QtGui -IC:/Qt/6.7.3/msvc2022_64/include/QtNetwork -IC:/Qt/6.7.3/msvc2022_64/include/QtCore -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\ATLMFC\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" widget.h -o debug\moc_widget.cpp C:\Qt\6.7.3\msvc2022_64\bin\moc.exe $(DEFINES) --compiler-flavor=msvc --include C:/Users/Administrator/Documents/cotton_double/debug/moc_predefs.h -IC:/Qt/6.7.3/msvc2022_64/mkspecs/win32-msvc -IC:/Users/Administrator/Documents/cotton_double -IC:/Users/Administrator/Desktop/cotton_double/Include -ID:/opencv/opencv410-vs22/include -IC:/Qt/6.7.3/msvc2022_64/include -IC:/Qt/6.7.3/msvc2022_64/include/QtWidgets -IC:/Qt/6.7.3/msvc2022_64/include/QtGui -IC:/Qt/6.7.3/msvc2022_64/include/QtNetwork -IC:/Qt/6.7.3/msvc2022_64/include/QtCore -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\ATLMFC\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" widget.h -o debug\moc_widget.cpp
@ -870,6 +872,9 @@ debug\camera.obj: camera.cpp camera.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdeadlinetimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdeadlinetimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qelapsedtimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qelapsedtimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\qpixmap.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QTimer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QTimer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h
@ -1009,7 +1014,120 @@ debug\globals.obj: globals.cpp globals.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobjectdefs_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobjectdefs_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfunctionaltools_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfunctionaltools_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \
D:\opencv\opencv410-vs22\include\opencv2\opencv.hpp \
D:\opencv\opencv410-vs22\include\opencv2\opencv_modules.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvdef.h \
D:\opencv\opencv410-vs22\include\opencv2\core\version.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\hal\interface.h \
D:\opencv\opencv410-vs22\include\opencv2\core\cv_cpu_dispatch.h \
D:\opencv\opencv410-vs22\include\opencv2\core\cv_cpu_helper.h \
D:\opencv\opencv410-vs22\include\opencv2\core\hal\msa_macros.h \
D:\opencv\opencv410-vs22\include\opencv2\core\fast_math.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\base.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd_wrapper.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\neon_utils.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\vsx_utils.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\check.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\traits.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\matx.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\saturate.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\matx.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\types.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\mat.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\bufferpool.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\mat.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\persistence.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\operations.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utility.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\instrumentation.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\tls.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\optim.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\ovx.hpp \
D:\opencv\opencv410-vs22\include\opencv2\calib3d.hpp \
D:\opencv\opencv410-vs22\include\opencv2\features2d.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\miniflann.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\defines.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\config.h \
D:\opencv\opencv410-vs22\include\opencv2\core\affine.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logger.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logger.defines.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logtag.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dnn.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\async.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\version.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dict.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\layer.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dnn.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\utils\inference_engine.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\flann_base.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\general.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\matrix.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\params.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\any.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\saving.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\nn_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\result_set.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\all_indices.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kdtree_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\dynamic_bitset.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\dist.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\heap.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\allocator.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\random.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kdtree_single_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kmeans_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\logger.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\composite_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\linear_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\hierarchical_clustering_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\lsh_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\lsh_table.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\autotuned_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\ground_truth.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\index_testing.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\timer.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\sampling.h \
D:\opencv\opencv410-vs22\include\opencv2\highgui.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgcodecs.hpp \
D:\opencv\opencv410-vs22\include\opencv2\videoio.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgproc.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgproc\segmentation.hpp \
D:\opencv\opencv410-vs22\include\opencv2\ml.hpp \
D:\opencv\opencv410-vs22\include\opencv2\ml\ml.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_dictionary.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_board.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\graphical_code_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\detection_based_tracker.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\face.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\charuco_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\barcode.hpp \
D:\opencv\opencv410-vs22\include\opencv2\photo.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\warpers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\warpers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda_types.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\warpers_inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\matchers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\motion_estimators.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\util.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\util_inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\camera.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\exposure_compensate.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\seam_finders.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\blenders.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video\tracking.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video\background_segm.hpp
debug\img_utils.obj: img_utils.cpp img_utils.h \ debug\img_utils.obj: img_utils.cpp img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
@ -1273,49 +1391,7 @@ debug\img_utils.obj: img_utils.cpp img_utils.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milreg.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milreg.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milstr.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milstr.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\PFNC.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\PFNC.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\milfuncll.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\milfuncll.h
camera.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QObject \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobject.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcoreevent.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmetatype.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcompare.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcomparehelpers.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfloat16.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmath.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qiterable.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmetacontainer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcontainerinfo.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtaggedpointer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobject_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbindingstorage.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QQueue \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qqueue.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDebug \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdebug.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtextstream.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcontiguouscache.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qsharedpointer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qsharedpointer_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmap.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qshareddata_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qset.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qhash.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qvarlengtharray.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QString \
onnxrunner.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpSocket \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpsocket.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetworkglobal.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetwork-config.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetworkexports.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qabstractsocket.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qiodevice.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qvariant.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h
debug\main.obj: main.cpp widget.h \ debug\main.obj: main.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QWidget \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QWidget \
@ -1673,12 +1749,14 @@ debug\main.obj: main.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qapplication.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qapplication.h
@ -2260,12 +2338,14 @@ debug\widget.obj: widget.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
ui_widget.h \ ui_widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QVariant \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QVariant \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \
@ -2289,11 +2369,9 @@ debug\widget.obj: widget.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QEventLoop \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QEventLoop \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QElapsedTimer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QElapsedTimer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDateTime \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDateTime \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdatetime.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdatetime.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcalendar.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcalendar.h
img_utils.h
debug\moc_widget.obj: debug\moc_widget.cpp debug\moc_widget.obj: debug\moc_widget.cpp

View File

@ -527,12 +527,14 @@ release\moc_widget.cpp: widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
release\moc_predefs.h \ release\moc_predefs.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\bin\moc.exe ..\..\..\..\Qt\6.7.3\msvc2022_64\bin\moc.exe
C:\Qt\6.7.3\msvc2022_64\bin\moc.exe $(DEFINES) --compiler-flavor=msvc --include C:/Users/Administrator/Documents/cotton_double/release/moc_predefs.h -IC:/Qt/6.7.3/msvc2022_64/mkspecs/win32-msvc -IC:/Users/Administrator/Documents/cotton_double -IC:/Users/Administrator/Desktop/cotton_double/Include -ID:/opencv/opencv410-vs22/include -IC:/Qt/6.7.3/msvc2022_64/include -IC:/Qt/6.7.3/msvc2022_64/include/QtWidgets -IC:/Qt/6.7.3/msvc2022_64/include/QtGui -IC:/Qt/6.7.3/msvc2022_64/include/QtNetwork -IC:/Qt/6.7.3/msvc2022_64/include/QtCore -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\ATLMFC\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" widget.h -o release\moc_widget.cpp C:\Qt\6.7.3\msvc2022_64\bin\moc.exe $(DEFINES) --compiler-flavor=msvc --include C:/Users/Administrator/Documents/cotton_double/release/moc_predefs.h -IC:/Qt/6.7.3/msvc2022_64/mkspecs/win32-msvc -IC:/Users/Administrator/Documents/cotton_double -IC:/Users/Administrator/Desktop/cotton_double/Include -ID:/opencv/opencv410-vs22/include -IC:/Qt/6.7.3/msvc2022_64/include -IC:/Qt/6.7.3/msvc2022_64/include/QtWidgets -IC:/Qt/6.7.3/msvc2022_64/include/QtGui -IC:/Qt/6.7.3/msvc2022_64/include/QtNetwork -IC:/Qt/6.7.3/msvc2022_64/include/QtCore -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\ATLMFC\include" -I"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" -I"C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" widget.h -o release\moc_widget.cpp
@ -869,6 +871,9 @@ release\camera.obj: camera.cpp camera.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdeadlinetimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdeadlinetimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qelapsedtimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qelapsedtimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\qpixmap.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QTimer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QTimer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h
@ -1008,7 +1013,120 @@ release\globals.obj: globals.cpp globals.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobjectdefs_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobjectdefs_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfunctionaltools_impl.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfunctionaltools_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtsan_impl.h \
D:\opencv\opencv410-vs22\include\opencv2\opencv.hpp \
D:\opencv\opencv410-vs22\include\opencv2\opencv_modules.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvdef.h \
D:\opencv\opencv410-vs22\include\opencv2\core\version.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\hal\interface.h \
D:\opencv\opencv410-vs22\include\opencv2\core\cv_cpu_dispatch.h \
D:\opencv\opencv410-vs22\include\opencv2\core\cv_cpu_helper.h \
D:\opencv\opencv410-vs22\include\opencv2\core\hal\msa_macros.h \
D:\opencv\opencv410-vs22\include\opencv2\core\fast_math.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\base.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd_wrapper.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\neon_utils.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\vsx_utils.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\check.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\traits.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\matx.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\saturate.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\matx.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\types.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\mat.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\bufferpool.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\mat.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\persistence.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\operations.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cvstd.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utility.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\instrumentation.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\tls.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\optim.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\ovx.hpp \
D:\opencv\opencv410-vs22\include\opencv2\calib3d.hpp \
D:\opencv\opencv410-vs22\include\opencv2\features2d.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\miniflann.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\defines.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\config.h \
D:\opencv\opencv410-vs22\include\opencv2\core\affine.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logger.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logger.defines.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\utils\logtag.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dnn.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\async.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\version.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dict.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\layer.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\dnn.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\dnn\utils\inference_engine.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\flann_base.hpp \
D:\opencv\opencv410-vs22\include\opencv2\flann\general.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\matrix.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\params.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\any.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\saving.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\nn_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\result_set.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\all_indices.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kdtree_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\dynamic_bitset.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\dist.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\heap.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\allocator.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\random.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kdtree_single_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\kmeans_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\logger.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\composite_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\linear_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\hierarchical_clustering_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\lsh_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\lsh_table.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\autotuned_index.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\ground_truth.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\index_testing.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\timer.h \
D:\opencv\opencv410-vs22\include\opencv2\flann\sampling.h \
D:\opencv\opencv410-vs22\include\opencv2\highgui.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgcodecs.hpp \
D:\opencv\opencv410-vs22\include\opencv2\videoio.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgproc.hpp \
D:\opencv\opencv410-vs22\include\opencv2\imgproc\segmentation.hpp \
D:\opencv\opencv410-vs22\include\opencv2\ml.hpp \
D:\opencv\opencv410-vs22\include\opencv2\ml\ml.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_dictionary.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\aruco_board.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\graphical_code_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\detection_based_tracker.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\face.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\charuco_detector.hpp \
D:\opencv\opencv410-vs22\include\opencv2\objdetect\barcode.hpp \
D:\opencv\opencv410-vs22\include\opencv2\photo.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\warpers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\warpers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda_types.hpp \
D:\opencv\opencv410-vs22\include\opencv2\core\cuda.inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\warpers_inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\matchers.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\motion_estimators.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\util.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\util_inl.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\camera.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\exposure_compensate.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\seam_finders.hpp \
D:\opencv\opencv410-vs22\include\opencv2\stitching\detail\blenders.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video\tracking.hpp \
D:\opencv\opencv410-vs22\include\opencv2\video\background_segm.hpp
release\img_utils.obj: img_utils.cpp img_utils.h \ release\img_utils.obj: img_utils.cpp img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
@ -1272,49 +1390,7 @@ release\img_utils.obj: img_utils.cpp img_utils.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milreg.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milreg.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milstr.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\milstr.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\PFNC.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\MILDyn\PFNC.h \
..\..\Desktop\cotton_double\Include\ClassicMIL\milfuncll.h \ ..\..\Desktop\cotton_double\Include\ClassicMIL\milfuncll.h
camera.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QObject \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobject.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcoreevent.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmetatype.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcompare.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcomparehelpers.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qfloat16.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmath.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qiterable.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmetacontainer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcontainerinfo.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtaggedpointer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qscopeguard.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qobject_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbindingstorage.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QQueue \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qqueue.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDebug \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdebug.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qtextstream.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcontiguouscache.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qsharedpointer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qsharedpointer_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qmap.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qshareddata_impl.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qset.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qhash.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qvarlengtharray.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QString \
onnxrunner.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpSocket \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpsocket.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetworkglobal.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetwork-config.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtnetworkexports.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qabstractsocket.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qiodevice.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qvariant.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h
release\main.obj: main.cpp widget.h \ release\main.obj: main.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QWidget \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QWidget \
@ -1672,12 +1748,14 @@ release\main.obj: main.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qapplication.h ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qapplication.h
@ -2259,12 +2337,14 @@ release\widget.obj: widget.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qhostaddress.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\QTcpServer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtNetwork\qtcpserver.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
globals.h \ globals.h \
..\..\Desktop\cotton_double\Include\MIL.h \ ..\..\Desktop\cotton_double\Include\MIL.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QMutex \
img_utils.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QPushButton \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qpushbutton.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\qabstractbutton.h \
ui_widget.h \ ui_widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QVariant \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QVariant \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtWidgets\QApplication \
@ -2288,11 +2368,9 @@ release\widget.obj: widget.cpp widget.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qbasictimer.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QEventLoop \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QEventLoop \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QElapsedTimer \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QElapsedTimer \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtGui\QPixmap \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDateTime \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\QDateTime \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdatetime.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qdatetime.h \
..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcalendar.h \ ..\..\..\..\Qt\6.7.3\msvc2022_64\include\QtCore\qcalendar.h
img_utils.h
release\moc_widget.obj: release\moc_widget.cpp release\moc_widget.obj: release\moc_widget.cpp

View File

@ -3,7 +3,7 @@
#include <QTimer> #include <QTimer>
// Debug Options // Debug Options
#define GlobalDebug 1 // 全局是否允许打印Debug信息打印会拖慢处理时间 #define GlobalDebug 0 // 全局是否允许打印Debug信息打印会拖慢处理时间
#define DebugDetection 0 // 注意开启这个编译选项会导致图片存储, 处理时间会很慢 #define DebugDetection 0 // 注意开启这个编译选项会导致图片存储, 处理时间会很慢
#define DebugDetectionTime 0 // 是否打印处理时间 #define DebugDetectionTime 0 // 是否打印处理时间
#define DebugLowerMacCOM 0 // 是否打印和下位机通讯的相关信息 #define DebugLowerMacCOM 0 // 是否打印和下位机通讯的相关信息
@ -46,7 +46,7 @@ ONNXRunner runner;
std::map<std::string, int> params; std::map<std::string, int> params;
int dual_cam_offset_y = 89; // 双相机之间的上下偏移值 int dual_cam_offset_y = 0; // 双相机之间的上下偏移值
int widthBlocks = 20; // 输出的喷阀通道数 int widthBlocks = 20; // 输出的喷阀通道数
int heightBlocks = 512; // 输出的Mask高度 int heightBlocks = 512; // 输出的Mask高度
int sizeThreshold = 20; // 转化为喷阀的每块要求像素个数 int sizeThreshold = 20; // 转化为喷阀的每块要求像素个数
@ -95,7 +95,7 @@ bool iniCamera()
MbufAllocColor(MilSystem,3,BufSizeX0,BufSizeY0,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&detection_result0); MbufAllocColor(MilSystem,3,BufSizeX0,BufSizeY0,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&detection_result0);
MbufAllocColor(MilSystem,3,BufSizeX1,BufSizeY1,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&detection_result1); MbufAllocColor(MilSystem,3,BufSizeX1,BufSizeY1,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&detection_result1);
MbufAllocColor(MilSystem,3,BufSizeX0,BufSizeY0,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&MilImage_Onnx0); MbufAllocColor(MilSystem,3,BufSizeX0,BufSizeY0,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&MilImage_Onnx0);
MbufAllocColor(MilSystem,3,BufSizeX1,BufSizeY1,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&MilImage_Onnx1);; MbufAllocColor(MilSystem,3,BufSizeX1,BufSizeY1,8 + M_UNSIGNED,M_IMAGE + M_GRAB + M_PROC,&MilImage_Onnx1);
//给每一个bufferlist分配空间 //给每一个bufferlist分配空间
@ -163,7 +163,7 @@ MIL_INT ProcessingFunction0(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
//拷贝存图图像 //拷贝存图图像
MbufCopy(ModifiedBufferId0,MilImage0); MbufCopy(ModifiedBufferId0,MilImage0);
//Mil保存路径 //Mil保存路径
QString MilImgPath = QString("C:/Users/Pc/Desktop/cotton_double2/Img1/%1.bmp").arg(FuncCount0); QString MilImgPath = QString("C:/Users/Administrator/Desktop/1/%1.bmp").arg(FuncCount0);
MIL_STRING MilImagePath = MilImgPath.toStdWString(); MIL_STRING MilImagePath = MilImgPath.toStdWString();
MbufExport(MilImagePath,M_BMP,MilImage0); MbufExport(MilImagePath,M_BMP,MilImage0);
qDebug()<<"回调1成功存储照片:"<<FuncCount0<<""; qDebug()<<"回调1成功存储照片:"<<FuncCount0<<"";
@ -193,48 +193,11 @@ MIL_INT ProcessingFunction0(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
} }
auto [mask_tmp, newTail] = generateMaskWithTail(detection_result0, tail_0, widthBlocks, heightBlocks, sizeThreshold, rowRange, skipLeftCols, skipRightCols); auto [mask_tmp, newTail] = generateMaskWithTail(detection_result0, tail_0, widthBlocks, heightBlocks, sizeThreshold, rowRange, skipLeftCols, skipRightCols);
tail_0 = newTail; tail_0 = newTail;
mask_0 = mask_tmp; mask_0 = mask_tmp;
bool isReady; detection_ready.release();
vector<vector<uint8_t>> merged_mask; MbufFree(detection_result0);
vector<vector<uint8_t>> mask_tail;
{
QMutexLocker locker_self(&imgDetectionReadyMutex);
imgDetectionReady0 = true;
// QMutexLocker locker_other(&imgDetectionReady1Mutex);
isReady = imgDetectionReady0 & imgDetectionReady1;
if(isReady)
{
merged_mask = ImageUtils::mergeMasks(mask_0, mask_1, dual_cam_offset_y);
std::tie(merged_mask, mask_tail) = ImageUtils::extractROI(merged_mask, 0, 0, widthBlocks, heightBlocks);
}
}
// 没有两个都完成就不发送
if(!isReady)
return 0;
// 发送前的处理
// 将每个结果左右扩展扩展半径默认为1
auto mask_expaned = expandMaskHorizontally(merged_mask, expansionRaidus);
// 将结果的左右补充上0让物体大小符合要求
PadColumns(mask_expaned,padLeft,padRight,0);
//将mask扩展到合适的大小
std::vector<std::vector<uint8_t>> mask_Total = expandArray(mask_expaned,64);
// save masks
#if(GlobalDebug && DebugDetection)
VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask" + std::to_string(FuncCount1) + ".bmp");
VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask_ignored" + std::to_string(FuncCount1) + ".bmp");
VectorToImg(mask_Total,"C:/Users/Pc/Desktop/img/mask_expended" + std::to_string(FuncCount1) + ".bmp");
#endif
// 发送到下位机
bool result_Low = get_valve_data(mask_Total);
if(!result_Low)
{
qWarning()<<"下位机发送失败";
}
return 0; return 0;
} }
@ -255,8 +218,8 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
// Update the current Img MIl id // Update the current Img MIl id
{ {
QMutexLocker locker(&gDispPicMutex1); QMutexLocker locker(&gDispPicMutex1);
gDispCurrentPicId1 = ModifiedBufferId1; gDispCurrentPicId1 = ModifiedBufferId1;
} }
if(SaveImg_Flag) if(SaveImg_Flag)
@ -264,7 +227,7 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
//拷贝存图数据 //拷贝存图数据
MbufCopy(ModifiedBufferId1,MilImage1); MbufCopy(ModifiedBufferId1,MilImage1);
//Mil保存路径 //Mil保存路径
QString MilImgPath = QString("C:/Users/Pc/Desktop/cotton_double2/Img2/%1.bmp").arg(FuncCount1); QString MilImgPath = QString("C:/Users/Administrator/Desktop/2/%1.bmp").arg(FuncCount1);
MIL_STRING MilImagePath = MilImgPath.toStdWString(); MIL_STRING MilImagePath = MilImgPath.toStdWString();
MbufExport(MilImagePath,M_BMP,MilImage1); MbufExport(MilImagePath,M_BMP,MilImage1);
qDebug()<<"回调2成功存储照片:"<<FuncCount1<<""; qDebug()<<"回调2成功存储照片:"<<FuncCount1<<"";
@ -313,25 +276,12 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
tail_1 = newTail; tail_1 = newTail;
mask_1 = mask_tmp; mask_1 = mask_tmp;
bool isReady; detection_ready.acquire();
vector<vector<uint8_t>> merged_mask; vector<vector<uint8_t>> merged_mask;
vector<vector<uint8_t>> mask_tail; vector<vector<uint8_t>> mask_tail;
{ merged_mask = ImageUtils::mergeMasks(mask_0, mask_1, dual_cam_offset_y);
QMutexLocker locker_self(&imgDetectionReadyMutex); std::tie(merged_mask, mask_tail) = ImageUtils::extractROI(merged_mask, 0, 0, widthBlocks, heightBlocks);
imgDetectionReady1 = true;
// QMutexLocker locker_other(&imgDetectionReady0Mutex);
isReady = imgDetectionReady0 & imgDetectionReady1;
if(isReady)
{
merged_mask = ImageUtils::mergeMasks(mask_0, mask_1, dual_cam_offset_y);
std::tie(merged_mask, mask_tail) = ImageUtils::extractROI(merged_mask, 0, 0, widthBlocks, heightBlocks);
}
}
// 没有两个都完成就不发送
if(!isReady)
return 0;
// 发送前的处理 // 发送前的处理
// 将每个结果左右扩展扩展半径默认为1 // 将每个结果左右扩展扩展半径默认为1
@ -345,7 +295,7 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask" + std::to_string(FuncCount1) + ".bmp"); VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask" + std::to_string(FuncCount1) + ".bmp");
VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask_ignored" + std::to_string(FuncCount1) + ".bmp"); VectorToImg(mask_1,"C:/Users/Pc/Desktop/img/mask_ignored" + std::to_string(FuncCount1) + ".bmp");
VectorToImg(mask_Total,"C:/Users/Pc/Desktop/img/mask_expended" + std::to_string(FuncCount1) + ".bmp"); VectorToImg(mask_Total,"C:/Users/Pc/Desktop/img/mask_expended" + std::to_string(FuncCount1) + ".bmp");
#endif #endif \
// 发送到下位机 // 发送到下位机
bool result_Low = get_valve_data(mask_Total); bool result_Low = get_valve_data(mask_Total);
if(!result_Low) if(!result_Low)
@ -353,11 +303,13 @@ MIL_INT ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void *HookDataPtr)
qWarning()<<"下位机发送失败"; qWarning()<<"下位机发送失败";
} }
#if(GlobalDebug && DebugDetectionTime) #if(GlobalDebug && DebugDetectionTime)
timer_detection_time.printElapsedTime("Time of Processing From Get into Ca" timer_detection_time.printElapsedTime("Time of Processing From Get into Ca"
"..0llBack to Sent to Lower Mac"); "..0llBack to Sent to Lower Mac");
#endif #endif
MbufFree(detection_result1);
return 0; return 0;
} }
@ -383,8 +335,8 @@ bool DestoryCamera()
MbufFree(MilImage_Color1); MbufFree(MilImage_Color1);
MbufFree(MilImage_Onnx0); MbufFree(MilImage_Onnx0);
MbufFree(MilImage_Onnx1); MbufFree(MilImage_Onnx1);
MbufFree(detection_result0); // MbufFree(detection_result0);
MbufFree(detection_result1); // MbufFree(detection_result1);
MdigFree(MilDigitizer0); MdigFree(MilDigitizer0);
MdigFree(MilDigitizer1); MdigFree(MilDigitizer1);
MsysFree(MilSystem); MsysFree(MilSystem);
@ -1004,6 +956,10 @@ bool DestoryLowMac()
bool get_valve_data(std::vector<std::vector<uint8_t>> mask) bool get_valve_data(std::vector<std::vector<uint8_t>> mask)
{ {
if (mask[0].size() % 8 != 0) {
std::cerr << "Error: mask 的第 0 行的列数应该为 8 的倍数。" << std::endl;
return false;
}
uint8_t* mask_buf = new uint8_t[4096 + 8]; // 创建缓冲区大小为3072 + 8 uint8_t* mask_buf = new uint8_t[4096 + 8]; // 创建缓冲区大小为3072 + 8
mask_buf[0] = 0xAA; // 起始标志 mask_buf[0] = 0xAA; // 起始标志
mask_buf[1] = 0x10; // 高位数据长度 (352 字节 -> 0x0160) mask_buf[1] = 0x10; // 高位数据长度 (352 字节 -> 0x0160)
@ -1015,18 +971,14 @@ bool get_valve_data(std::vector<std::vector<uint8_t>> mask)
int idx = 5; // 从 mask_buf[5] 开始存储数据 int idx = 5; // 从 mask_buf[5] 开始存储数据
for (int i = 0; i < 512; i++) // 遍历512行 for (int i = 0; i < 512; i++) // 遍历512行
{ {
uint8_t byte = 0; for (int j = 0; j < int(64 / 8); j++) // 遍历64列
int bit_count = 0; {
for (int j = 0; j < 64; j++) // 遍历64列 uint8_t byte = 0;
{ for (int bit_idx = 0; bit_idx < 8; bit_idx++)
byte = (byte << 1) | (uint8_t)mask[i][j]; // 将每个二进制位加入到字节中
bit_count++;
if (bit_count == 8 || j == 63) // 每8个二进制位打包成一个字节
{ {
mask_buf[idx++] = byte; byte |= (mask[i][ j * 8 + bit_idx] & 0x01) << bit_idx; // 每个字节内,低字节优先
byte = 0; // 重置byte开始下一个字节
bit_count = 0;
} }
mask_buf[idx++] = byte;
} }
} }
@ -1066,11 +1018,10 @@ bool get_valve_data(std::vector<std::vector<uint8_t>> mask)
delete[] mask_buf; // 释放内存 delete[] mask_buf; // 释放内存
return 1; return true;
} }
void Start_camera() void Start_camera()
{ {
MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_START, M_DEFAULT,ProcessingFunction0, M_NULL); MdigProcess(MilDigitizer0, MilGrabBufferList0, 20, M_START, M_DEFAULT,ProcessingFunction0, M_NULL);

View File

@ -17,12 +17,13 @@
/ /
/ /
/ /
/
[CAMERA_NAME] [CAMERA_NAME]
no name no name
[CONFIG_FILE] [CONFIG_FILE]
50CF 50CF
ODYSSEY ODYSSEY
Mon Dec 9 16:10:06 2024 Sun Dec 22 20:52:23 2024
[INFO_FILE_REV] [INFO_FILE_REV]
0010.0019.0000 0010.0019.0000
RADIENT/eVCL/DUAL RADIENT/eVCL/DUAL
@ -119,8 +120,8 @@ VDT_HSYNC_FREQ
VDT_VSYNC 0x0 VDT_VSYNC 0x0
VDT_VBPORCH 0x0 VDT_VBPORCH 0x0
VDT_VFPORCH 0x0 VDT_VFPORCH 0x0
VDT_VACTIVE 0x400 VDT_VACTIVE 0x200
VDT_VTOTAL 0x400 VDT_VTOTAL 0x200
VDT_VSYNC_FREQ 0x0 VDT_VSYNC_FREQ 0x0
VDT_CL_IMAGE_SIZE_X 0x0 VDT_CL_IMAGE_SIZE_X 0x0
VDT_CL_IMAGE_SIZE_Y 0x0 VDT_CL_IMAGE_SIZE_Y 0x0
@ -1560,8 +1561,8 @@ DEF_ADD_HACTIVE_MULTIPLEX
DEF_ADD_VACTIVE_MULTIPLEX 0x0 DEF_ADD_VACTIVE_MULTIPLEX 0x0
DEF_HTOTAL_ENTRY 0x1000 DEF_HTOTAL_ENTRY 0x1000
DEF_HACTIVE_ENTRY 0x1000 DEF_HACTIVE_ENTRY 0x1000
DEF_VTOTAL_ENTRY 0x400 DEF_VTOTAL_ENTRY 0x200
DEF_VACTIVE_ENTRY 0x400 DEF_VACTIVE_ENTRY 0x200
DEF_CL_NEW_HCROPPING 0x0 DEF_CL_NEW_HCROPPING 0x0
DEF_CL_NEW_VCROPPING 0x0 DEF_CL_NEW_VCROPPING 0x0
DEF_NTSC 0x0 DEF_NTSC 0x0
@ -1582,7 +1583,7 @@ DEF_ADD_HTOTAL_EQUA_HEVAL
DEF_HOR_COUNT_MAX_BITWISE 0xffff DEF_HOR_COUNT_MAX_BITWISE 0xffff
DEF_VERT_COUNT_MAX_BITWISE 0xffff DEF_VERT_COUNT_MAX_BITWISE 0xffff
DEF_DIG_HTOTAL 0x1002 DEF_DIG_HTOTAL 0x1002
DEF_DIG_VTOTAL 0x3ff DEF_DIG_VTOTAL 0x1ff
DEF_TEST_MODE_HFP_MIN 0x0 DEF_TEST_MODE_HFP_MIN 0x0
DEF_TEST_MODE_HSY_HBP_MIN_CL 0x0 DEF_TEST_MODE_HSY_HBP_MIN_CL 0x0
DEF_TEST_MODE_VFP_MIN 0x0 DEF_TEST_MODE_VFP_MIN 0x0
@ -1729,7 +1730,7 @@ DEF_DIG1_BYTESORDER
INFO_CUSTOM 0x0 INFO_CUSTOM 0x0
INFO_REGISTER_REV 0x1 INFO_REGISTER_REV 0x1
INFO_XSIZE 0x1000 INFO_XSIZE 0x1000
INFO_YSIZE 0x400 INFO_YSIZE 0x200
INFO_TYPE 0x1 INFO_TYPE 0x1
INFO_BAYER 0x0 INFO_BAYER 0x0
INFO_BURSTSIZE 0x0 INFO_BURSTSIZE 0x0
@ -1933,7 +1934,7 @@ DIG_HSCLM
DIG_HECLM 0x0 DIG_HECLM 0x0
DIG_HCTL 0x1e0 DIG_HCTL 0x1e0
DIG_VCNT 0x1 DIG_VCNT 0x1
DIG_VTOTAL 0x3ff DIG_VTOTAL 0x1ff
DIG_VSCNT 0x0 DIG_VSCNT 0x0
DIG_VECNT 0x0 DIG_VECNT 0x0
DIG_VSSYNC 0x0 DIG_VSSYNC 0x0
@ -2348,5 +2349,5 @@ DIG_IOCTL1H
DIG_IOCTL0_L not_modified DIG_IOCTL0_L not_modified
DIG_ENCTL not_modified DIG_ENCTL not_modified
[EOF] [EOF]
00007FF687B3AAA8 0x400b8 00007FF72205AAA8 0x400bb
00007FF687B3AA90 0x48b1c582 00007FF72205AA90 0x2b19a5ff

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 15.0.0, 2024-12-21T22:26:46. --> <!-- Written by QtCreator 15.0.0, 2024-12-22T17:14:30. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -14,7 +14,4 @@ QMutex gMaskMutex1;
MIL_ID gMask1 = 0; MIL_ID gMask1 = 0;
// 双相机结果同步 // 双相机结果同步
QMutex imgDetectionReadyMutex; QSemaphore detection_ready(0);
QMutex imgDetectionReady1Mutex;
bool imgDetectionReady0 = false;
bool imgDetectionReady1 = false;

View File

@ -5,6 +5,7 @@
#include <MIL.h> #include <MIL.h>
#include <QMutex> #include <QMutex>
#include <opencv2/opencv.hpp> #include <opencv2/opencv.hpp>
#include <QSemaphore>
// 图片显示0 // 图片显示0
extern QMutex gDispPicMutex0; extern QMutex gDispPicMutex0;
@ -20,9 +21,6 @@ extern MIL_ID gMask0;
extern QMutex gMaskMutex1; extern QMutex gMaskMutex1;
extern MIL_ID gMask1; extern MIL_ID gMask1;
extern QMutex imgDetectionReadyMutex; extern QSemaphore detection_ready;
extern QMutex imgDetectionReady1Mutex;
extern bool imgDetectionReady0;
extern bool imgDetectionReady1;
#endif // GLOBALS_H #endif // GLOBALS_H

View File

@ -15,19 +15,22 @@ QPixmap ImageUtils::mat2QPixmap(const cv::Mat& mat)
// 灰度图像 // 灰度图像
img = QImage(mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_Grayscale8).copy(); img = QImage(mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_Grayscale8).copy();
} }
else if(mat.channels() == 3){ else if(mat.channels() == 3)
{
// 彩色图像 (OpenCV 默认是 BGR需要转换为 RGB) // 彩色图像 (OpenCV 默认是 BGR需要转换为 RGB)
cv::Mat rgb; cv::Mat rgb;
cv::cvtColor(mat, rgb, cv::COLOR_BGR2RGB); cv::cvtColor(mat, rgb, cv::COLOR_BGR2RGB);
img = QImage(rgb.data, rgb.cols, rgb.rows, static_cast<int>(rgb.step), QImage::Format_RGB888).copy(); img = QImage(rgb.data, rgb.cols, rgb.rows, static_cast<int>(rgb.step), QImage::Format_RGB888).copy();
} }
else if(mat.channels() == 4){ else if(mat.channels() == 4)
{
// 如果需要处理带有透明通道的图像 (BGRA 转 RGBA) // 如果需要处理带有透明通道的图像 (BGRA 转 RGBA)
cv::Mat rgba; cv::Mat rgba;
cv::cvtColor(mat, rgba, cv::COLOR_BGRA2RGBA); cv::cvtColor(mat, rgba, cv::COLOR_BGRA2RGBA);
img = QImage(rgba.data, rgba.cols, rgba.rows, static_cast<int>(rgba.step), QImage::Format_RGBA8888).copy(); img = QImage(rgba.data, rgba.cols, rgba.rows, static_cast<int>(rgba.step), QImage::Format_RGBA8888).copy();
} }
else{ else
{
// 不支持的图像格式 // 不支持的图像格式
std::cout << "Unsupported Mat format with channels:" << mat.channels(); std::cout << "Unsupported Mat format with channels:" << mat.channels();
return QPixmap(); return QPixmap();

View File

@ -25,7 +25,7 @@ class Ui_Widget
public: public:
QTabWidget *tabWidget; QTabWidget *tabWidget;
QWidget *tab; QWidget *tab;
QPushButton *pushButton; QPushButton *pushButtonStart;
QPushButton *pushButton_2; QPushButton *pushButton_2;
QPushButton *btn_goto_sort; QPushButton *btn_goto_sort;
QPushButton *btn_0to3; QPushButton *btn_0to3;
@ -35,12 +35,12 @@ public:
QPushButton *btn_reconnect; QPushButton *btn_reconnect;
QWidget *tab_2; QWidget *tab_2;
QLabel *lab_info; QLabel *lab_info;
QPushButton *btn_start; QPushButton *pushButton;
QPushButton *btn_stop; QPushButton *btn_stop;
QLabel *camera_0_img;
QLabel *camera_1_img; QLabel *camera_1_img;
QLabel *label_2; QLabel *label_2;
QLabel *label_3; QLabel *label_3;
QLabel *camera_0_img;
QWidget *tab_3; QWidget *tab_3;
QLabel *label_title_3; QLabel *label_title_3;
QGroupBox *groupBox_4; QGroupBox *groupBox_4;
@ -73,9 +73,9 @@ public:
tabWidget->setGeometry(QRect(0, 0, 801, 601)); tabWidget->setGeometry(QRect(0, 0, 801, 601));
tab = new QWidget(); tab = new QWidget();
tab->setObjectName("tab"); tab->setObjectName("tab");
pushButton = new QPushButton(tab); pushButtonStart = new QPushButton(tab);
pushButton->setObjectName("pushButton"); pushButtonStart->setObjectName("pushButtonStart");
pushButton->setGeometry(QRect(100, 130, 201, 61)); pushButtonStart->setGeometry(QRect(100, 130, 201, 61));
pushButton_2 = new QPushButton(tab); pushButton_2 = new QPushButton(tab);
pushButton_2->setObjectName("pushButton_2"); pushButton_2->setObjectName("pushButton_2");
pushButton_2->setGeometry(QRect(400, 120, 181, 71)); pushButton_2->setGeometry(QRect(400, 120, 181, 71));
@ -124,17 +124,12 @@ public:
QFont font; QFont font;
font.setPointSize(28); font.setPointSize(28);
lab_info->setFont(font); lab_info->setFont(font);
btn_start = new QPushButton(tab_2); pushButton = new QPushButton(tab_2);
btn_start->setObjectName("btn_start"); pushButton->setObjectName("pushButton");
btn_start->setGeometry(QRect(20, 130, 101, 41)); pushButton->setGeometry(QRect(20, 130, 101, 41));
btn_stop = new QPushButton(tab_2); btn_stop = new QPushButton(tab_2);
btn_stop->setObjectName("btn_stop"); btn_stop->setObjectName("btn_stop");
btn_stop->setGeometry(QRect(20, 190, 101, 41)); btn_stop->setGeometry(QRect(20, 190, 101, 41));
camera_0_img = new QLabel(tab_2);
camera_0_img->setObjectName("camera_0_img");
camera_0_img->setGeometry(QRect(160, 40, 591, 191));
camera_0_img->setStyleSheet(QString::fromUtf8("background-color: rgb(129, 129, 129);\n"
"border: 4px solid black;"));
camera_1_img = new QLabel(tab_2); camera_1_img = new QLabel(tab_2);
camera_1_img->setObjectName("camera_1_img"); camera_1_img->setObjectName("camera_1_img");
camera_1_img->setGeometry(QRect(160, 290, 591, 191)); camera_1_img->setGeometry(QRect(160, 290, 591, 191));
@ -147,6 +142,12 @@ public:
label_3 = new QLabel(tab_2); label_3 = new QLabel(tab_2);
label_3->setObjectName("label_3"); label_3->setObjectName("label_3");
label_3->setGeometry(QRect(160, 20, 141, 16)); label_3->setGeometry(QRect(160, 20, 141, 16));
camera_0_img = new QLabel(tab_2);
camera_0_img->setObjectName("camera_0_img");
camera_0_img->setGeometry(QRect(160, 50, 591, 191));
camera_0_img->setStyleSheet(QString::fromUtf8("background-color: rgb(129, 129, 129);\n"
"border: 4px solid black;"));
camera_0_img->setLineWidth(1);
tabWidget->addTab(tab_2, QString()); tabWidget->addTab(tab_2, QString());
tab_3 = new QWidget(); tab_3 = new QWidget();
tab_3->setObjectName("tab_3"); tab_3->setObjectName("tab_3");
@ -226,7 +227,7 @@ public:
void retranslateUi(QWidget *Widget) void retranslateUi(QWidget *Widget)
{ {
Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr)); Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));
pushButton->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213", nullptr)); pushButtonStart->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213", nullptr));
pushButton_2->setText(QCoreApplication::translate("Widget", "\344\277\235\345\255\230\345\233\276\347\211\207", nullptr)); pushButton_2->setText(QCoreApplication::translate("Widget", "\344\277\235\345\255\230\345\233\276\347\211\207", nullptr));
btn_goto_sort->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242", nullptr)); btn_goto_sort->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242", nullptr));
btn_0to3->setText(QCoreApplication::translate("Widget", "\345\226\267\351\230\200\346\265\213\350\257\225", nullptr)); btn_0to3->setText(QCoreApplication::translate("Widget", "\345\226\267\351\230\200\346\265\213\350\257\225", nullptr));
@ -236,12 +237,12 @@ public:
btn_reconnect->setText(QCoreApplication::translate("Widget", "\351\207\215\346\226\260\350\277\236\346\216\245", nullptr)); btn_reconnect->setText(QCoreApplication::translate("Widget", "\351\207\215\346\226\260\350\277\236\346\216\245", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab), QCoreApplication::translate("Widget", "Tab 1", nullptr)); tabWidget->setTabText(tabWidget->indexOf(tab), QCoreApplication::translate("Widget", "Tab 1", nullptr));
lab_info->setText(QCoreApplication::translate("Widget", "\345\207\206\345\244\207\344\270\255", nullptr)); lab_info->setText(QCoreApplication::translate("Widget", "\345\207\206\345\244\207\344\270\255", nullptr));
btn_start->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213\345\210\206\351\200\211", nullptr)); pushButton->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213\345\210\206\351\200\211", nullptr));
btn_stop->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242\345\210\206\351\200\211", nullptr)); btn_stop->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242\345\210\206\351\200\211", nullptr));
camera_0_img->setText(QString());
camera_1_img->setText(QString()); camera_1_img->setText(QString());
label_2->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2721\357\274\210\351\253\230\344\276\247/\346\260\224\347\275\220\344\276\247\357\274\211", nullptr)); label_2->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2721\357\274\210\351\253\230\344\276\247/\346\260\224\347\275\220\344\276\247\357\274\211", nullptr));
label_3->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2720\357\274\210\344\275\216\344\276\247/\345\207\272\351\243\216\345\217\243\344\276\247\357\274\211", nullptr)); label_3->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\2720\357\274\210\344\275\216\344\276\247/\345\207\272\351\243\216\345\217\243\344\276\247\357\274\211", nullptr));
camera_0_img->setText(QString());
tabWidget->setTabText(tabWidget->indexOf(tab_2), QCoreApplication::translate("Widget", "Tab 2", nullptr)); tabWidget->setTabText(tabWidget->indexOf(tab_2), QCoreApplication::translate("Widget", "Tab 2", nullptr));
label_title_3->setText(QCoreApplication::translate("Widget", "\345\217\202\346\225\260\350\256\276\347\275\256\347\225\214\351\235\242", nullptr)); label_title_3->setText(QCoreApplication::translate("Widget", "\345\217\202\346\225\260\350\256\276\347\275\256\347\225\214\351\235\242", nullptr));
groupBox_4->setTitle(QCoreApplication::translate("Widget", "\344\270\213\344\275\215\346\234\272\345\217\202\346\225\260", nullptr)); groupBox_4->setTitle(QCoreApplication::translate("Widget", "\344\270\213\344\275\215\346\234\272\345\217\202\346\225\260", nullptr));

View File

@ -27,6 +27,7 @@ Widget::Widget(QWidget *parent)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->camera_0_img->setScaledContents(true); ui->camera_0_img->setScaledContents(true);
ui->camera_1_img->setScaledContents(true);
iniColor(); iniColor();
@ -47,8 +48,8 @@ Widget::~Widget()
void Widget::refreshImage() void Widget::refreshImage()
{ {
refreshSingleImage(0); refreshSingleImage(0, false);
refreshSingleImage(1); refreshSingleImage(1, false);
} }
void Widget::refreshSingleImage(int camera_id, bool overlay_result) void Widget::refreshSingleImage(int camera_id, bool overlay_result)
@ -88,28 +89,26 @@ void Widget::refreshSingleImage(int camera_id, bool overlay_result)
{ {
QMutexLocker locker(&gDispPicMutex1); QMutexLocker locker(&gDispPicMutex1);
current_id = gDispCurrentPicId1; current_id = gDispCurrentPicId1;
}
if (current_id == 0) if (current_id == 0)
return; return;
cv::Mat img = ImageUtils::mil2Mat(current_id); cv::Mat img = ImageUtils::mil2Mat(current_id);
//进行结果的转化叠加 //进行结果的转化叠加
if (overlay_result) if (overlay_result)
{
MIL_ID mask_id = 0;
{ {
MIL_ID mask_id = 0; QMutexLocker locker(&gMaskMutex1);
{ mask_id = gMask1;
QMutexLocker locker(&gMaskMutex1);
mask_id = gMask1;
}
cv::Mat mask = ImageUtils::mil2Mat(mask_id);
img = ImageUtils::overlayResultOnInput(img,mask,0.5);
}
//刷新显示
QPixmap pixmap1 = ImageUtils::mat2QPixmap(img);
if (!pixmap1.isNull())
{
ui->camera_1_img->setPixmap(pixmap1);
} }
cv::Mat mask = ImageUtils::mil2Mat(mask_id);
img = ImageUtils::overlayResultOnInput(img,mask,0.5);
}
//刷新显示
QPixmap pixmap1 = ImageUtils::mat2QPixmap(img);
if (!pixmap1.isNull())
{
ui->camera_1_img->setPixmap(pixmap1);
} }
} }
else else
@ -147,3 +146,21 @@ void Widget::on_btn_goto_sort_clicked()
DestoryLowMac(); DestoryLowMac();
} }
void Widget::on_btn_stop_clicked()
{
// 回复显示的图片
{
QMutexLocker locker(&gDispPicMutex0);
gDispCurrentPicId0 = 0;
}
ui->camera_0_img->clear();
{
QMutexLocker locker(&gDispPicMutex1);
gDispCurrentPicId1 = 0;
}
ui->camera_1_img->clear();
DestoryCamera();
DestoryLowMac();
}

View File

@ -34,6 +34,8 @@ private slots:
void on_btn_goto_sort_clicked(); void on_btn_goto_sort_clicked();
void on_btn_stop_clicked();
private: private:
Ui::Widget *ui; Ui::Widget *ui;

View File

@ -29,7 +29,7 @@
<attribute name="title"> <attribute name="title">
<string>Tab 1</string> <string>Tab 1</string>
</attribute> </attribute>
<widget class="QPushButton" name="pushButton"> <widget class="QPushButton" name="pushButtonStart">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>100</x> <x>100</x>
@ -274,7 +274,7 @@
<string>准备中</string> <string>准备中</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="btn_start"> <widget class="QPushButton" name="pushButton">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>20</x>
@ -300,23 +300,6 @@
<string>停止分选</string> <string>停止分选</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="camera_0_img">
<property name="geometry">
<rect>
<x>160</x>
<y>40</y>
<width>591</width>
<height>191</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(129, 129, 129);
border: 4px solid black;</string>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="camera_1_img"> <widget class="QLabel" name="camera_1_img">
<property name="geometry"> <property name="geometry">
<rect> <rect>
@ -363,6 +346,26 @@ border: 4px solid black;</string>
<string>相机0低侧/出风口侧)</string> <string>相机0低侧/出风口侧)</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="camera_0_img">
<property name="geometry">
<rect>
<x>160</x>
<y>50</y>
<width>591</width>
<height>191</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(129, 129, 129);
border: 4px solid black;</string>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget> </widget>
<widget class="QWidget" name="tab_3"> <widget class="QWidget" name="tab_3">
<attribute name="title"> <attribute name="title">