将 Qt QByteArray 转换为 OpenCV cv::InputArray

Posted

技术标签:

【中文标题】将 Qt QByteArray 转换为 OpenCV cv::InputArray【英文标题】:Convert Qt QByteArray to OpenCV cv::InputArray 【发布时间】:2014-08-05 00:44:35 【问题描述】:

如何将 Qt QByteArray 转换为 cv::InputArray?

我需要传入一个自定义特征向量:

// Constructor
HoGDetector::HoGDetector(QObject *parent) :
    QObject(parent)


    qDebug() << "Creating HoG Detector";

    // Set the SVM Detector ( Default OpenCV One )
    m_HoG.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

    // Read
    QFile svmVectorFile(":/descriptorvector.dat");
    QByteArray svmVector = svmVectorFile.readAll();

    // Set the SVM Detector - custom trained HoG Detector
    m_HoG.setSVMDetector(svmVector);


谢谢!

【问题讨论】:

【参考方案1】:

OpenCV 知道如何将 std:vector 转换为 InputArray,所以这应该可以解决问题:

m_HoG.setSVMDetector(std::vector<uchar>(svmVector.begin(), svmVector.end()));

【讨论】:

以上是关于将 Qt QByteArray 转换为 OpenCV cv::InputArray的主要内容,如果未能解决你的问题,请参考以下文章

将 Qt QByteArray 转换为 OpenCV cv::InputArray

Qt读取ANSI格式文件——利用QTextCodec将其他编码格式的QByteArray转换为Unicode格式,或者从文件中读出后直接做转换

将结构转换为 QByteArray?

Qt QString 与 QByteArray 的转换

Qt 学习笔记 4. QByteArray

如何将qt中的qbytearray类型数据转换成去qstring类型