c++ - 从 QT 资源加载 openCV Haar Cascade

标签 c++ qt opencv

我想将 openCV 级联添加到 QT 的资源管理中。但是我失败了。

我已经测试了这段代码:

// load cascades
QUrl *location_cascade= new QUrl("qrc:/cascades/haarcascade_frontalface_alt.xml");
std::string file=location_cascade->toString().toStdString();
CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad( file);

但是编译器说:

cannot convert 'std::string* {aka std::basic_string<char>*}' to 'const char*' for argument '1' to 'void* cvLoad(const char*, CvMemStorage*, const char*, const char**)'

有人有想法吗?

更新 目前该文件位于项目的源文件夹中。我可以通过相对路径访问这个文件吗?也许通过一个指向 src.dir 的常量?

问候

最佳答案

编译器告诉您 cvLoad 的第一个参数应该是 const char*,但您传递的是 std::string。您需要像 cvLoad(file.c_str()) 那样调用它。

但即使您设法编译了该代码,它也可能无法运行,因为 openCV 对 Qt 资源一无所知,并且无法打开具有该名称的文件。

关于c++ - 从 QT 资源加载 openCV Haar Cascade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099442/

相关文章:

python - 使用python在打开的cv中使用鼠标事件绘制填充的多边形

c++ - "Variable"未在此范围内声明

c++ - 将指针类型派生到非指针类成员

C++ - 极其奇怪的机器代码行为

c++ - QML:QQmlListProperty<T>。 T 必须是 QObject 吗?

opencv - 从 opencv 获取实时网络摄像头到 Unity

c++ - 多维网格使用什么数据结构? (c++)

qt - QSortFilterProxyModel QTableView 5.3 不排序/更新?

c++ - 槽中的 QMutex

c++ - qt creator opencv windows cmake错误