faceCompare.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef FACECOMPARE_H
  2. #define FACECOMPARE_H
  3. #include <QWidget>
  4. #include <opencv2/opencv.hpp>
  5. #include <QTimer>
  6. #include <thread>
  7. #include <mutex>
  8. #include "CHttpBll.h"
  9. #include "CLiveViodeProc.h"
  10. #include "skipFaceCompare.h"
  11. namespace Ui {
  12. class faceCompare;
  13. }
  14. class faceCompare : public QWidget, ITRTCVideoRenderCallback
  15. {
  16. Q_OBJECT
  17. signals:
  18. void exitFaceCompare();
  19. void faceComparePass();
  20. void compareFailed(QString sErrorMsg);
  21. public:
  22. explicit faceCompare(QWidget *parent = nullptr);
  23. ~faceCompare();
  24. private slots:
  25. void on_btn_fc_compare_clicked();
  26. void on_btn_fc_close_clicked();
  27. void onClientExamProcessUploadSign(CClientExamProcessUploadSign processUpload); //文件上传
  28. void onUploadFileToAliyun(CUploadFileToAliyun uploadFileToAliyun);
  29. void onSaveFaceCompareResult(CBaseResponsePackage res);//保存人脸识别比对验证结果
  30. void onDownLoadFile(CDownLoadFileInfo downLoadFileInfo);
  31. private:
  32. void onRenderVideoFrame(const char* userId, TRTCVideoStreamType streamType, TRTCVideoFrame* frame);
  33. void initUI();
  34. bool setBaseImage();
  35. Ui::faceCompare *ui;
  36. std::shared_ptr<QTimer> m_pVideoTimer;
  37. std::shared_ptr<skipFaceCompare> m_pSkipFaceCompare;
  38. void threadProc();
  39. __int64 m_lastFaceTime = 0;
  40. std::thread m_thread;
  41. bool m_bIsRun;
  42. bool m_bStartCompare;
  43. cv::Mat m_nCurImage;
  44. std::mutex m_imageMutex;
  45. float m_fScore;
  46. int m_nFaceCount;
  47. int m_nTime;
  48. };
  49. #endif // FACECOMPARE_H