/
ka_pie
/
PeakOff
Обзор
Документация
Войти
/
ka_pie
/
PeakOff
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/processingworker.h
67 строк
2 KB
Viktoria
model + yarkost/contrastnost. Good night, girls!
12 июл 2026, 20:55
12 июл 2026, 20:55
bf5cc8e
Код
Авторство
О чём код?
#ifndef PROCESSINGWORKER_H #define PROCESSINGWORKER_H #include <QObject> #include <QImage> #include <QElapsedTimer> #include <QString> #include <opencv2/opencv.hpp> #include <opencv2/dnn/dnn.hpp> struct ProcessingMetrics { qint64 preprocessMs = 0; qint64 inferenceMs = 0; qint64 postprocessMs = 0; qint64 totalMs = 0; QString toString() const { return QString("%1ms").arg(totalMs); } }; class ProcessingWorker : public QObject { Q_OBJECT public: explicit ProcessingWorker(const QString &modelPath, const QString &enhancePath, const QString &stylePath, QObject *parent = nullptr); public slots: void processEnhance(const QImage &img); void processRemoveBackground(const QImage &img); void processStyle(const QImage &img, int styleIndex = 0); void processCorrection(const QImage &img, int brightness, float contrast); signals: void enhanceFinished(const QImage &result); void removeBackgroundFinished(const QImage &result); void styleFinished(const QImage &result, int styleIndex); void progressChanged(int percent); void metricsReady(const ProcessingMetrics &metrics); void errorOccurred(const QString &error); void correctionFinished(const QImage &result); private: cv::Mat preprocess(const cv::Mat &input); cv::Mat postprocess(const cv::Mat &rawMask, const cv::Size &originalSize); cv::Mat runInference(const cv::Mat &input); cv::Mat runStyleInference(cv::dnn::Net &net, const cv::Mat &input, const cv::Size &inputSize, ProcessingMetrics &metrics); cv::Mat runGenericInference(cv::dnn::Net &net, const cv::Mat &input, const cv::Size &inputSize, ProcessingMetrics &metrics); cv::Mat qimageToMat(const QImage &img); QImage matToQImage(const cv::Mat &mat); QImage stubEnhance(const QImage &img); QImage stubStyle(const QImage &img, int styleIndex); QString m_u2netPath; QString m_enhancePath; QString m_stylePath; cv::dnn::Net m_u2netNet; cv::dnn::Net m_enhanceNet; cv::dnn::Net m_styleNet; bool m_u2netLoaded = false; bool m_enhanceLoaded = false; bool m_styleLoaded = false; }; #endif