From 1e738bfcf6de401af52ac8153824ddab43c51c23 Mon Sep 17 00:00:00 2001 From: bklare Date: Mon, 15 Jun 2015 15:42:01 +0000 Subject: [PATCH] Added functions to serialize opencv Algorithm class --- openbr/core/opencvutils.cpp | 35 +++++++++++++++++++++++++++++++++++ openbr/core/opencvutils.h | 2 ++ 2 files changed, 37 insertions(+), 0 deletions(-) diff --git a/openbr/core/opencvutils.cpp b/openbr/core/opencvutils.cpp index d937ad8..ff8b670 100644 --- a/openbr/core/opencvutils.cpp +++ b/openbr/core/opencvutils.cpp @@ -280,6 +280,24 @@ void OpenCVUtils::storeModel(const CvStatModel &model, QDataStream &stream) stream << data; } +void OpenCVUtils::storeModel(const cv::Algorithm &model, QDataStream &stream) +{ + // Create local file + QTemporaryFile tempFile; + tempFile.open(); + tempFile.close(); + + // Save MLP to local file + cv::FileStorage fs(tempFile.fileName().toStdString(), cv::FileStorage::WRITE); + model.write(fs); + + // Copy local file contents to stream + tempFile.open(); + QByteArray data = tempFile.readAll(); + tempFile.close(); + stream << data; +} + void OpenCVUtils::loadModel(CvStatModel &model, QDataStream &stream) { // Copy local file contents from stream @@ -296,6 +314,23 @@ void OpenCVUtils::loadModel(CvStatModel &model, QDataStream &stream) model.load(qPrintable(tempFile.fileName())); } +void OpenCVUtils::loadModel(cv::Algorithm &model, QDataStream &stream) +{ + // Copy local file contents from stream + QByteArray data; + stream >> data; + + // Create local file + QTemporaryFile tempFile(QDir::tempPath()+"/model"); + tempFile.open(); + tempFile.write(data); + tempFile.close(); + + // Load MLP from local file + cv::FileStorage fs(tempFile.fileName().toStdString(), cv::FileStorage::READ); + model.read(fs["em"]); +} + Point2f OpenCVUtils::toPoint(const QPointF &qPoint) { return Point2f(qPoint.x(), qPoint.y()); diff --git a/openbr/core/opencvutils.h b/openbr/core/opencvutils.h index cd51e70..fae7597 100644 --- a/openbr/core/opencvutils.h +++ b/openbr/core/opencvutils.h @@ -52,7 +52,9 @@ namespace OpenCVUtils // Model storage void storeModel(const CvStatModel &model, QDataStream &stream); + void storeModel(const cv::Algorithm &model, QDataStream &stream); void loadModel(CvStatModel &model, QDataStream &stream); + void loadModel(cv::Algorithm &model, QDataStream &stream); template T getElement(const cv::Mat &m, int r, int c) -- libgit2 0.21.4