#include #include #include #include "aiengineimagesaver.h" AiEngineImageSaver::AiEngineImageSaver(const cv::Mat &image, int imageNumber, QObject *parent) : QThread(parent), image(image.clone()), imageNumber(imageNumber) { } AiEngineImageSaver::~AiEngineImageSaver() { wait(); } void AiEngineImageSaver::run() { if (image.empty() || image.channels() == 0) { qWarning() << "AiEngineImageSaver. Empty image or no channels, nothing to save."; return; } // Calculate the size of the upper half int halfHeight = image.rows / 2; cv::Mat upperHalf = image(cv::Rect(0, 0, image.cols, halfHeight)); // Use bpm to reduce encoding time. QString filePath = QString("/tmp/image-%1.bmp").arg(imageNumber, 5, 10, QChar('0')); cv::imwrite(filePath.toStdString(), upperHalf); }