如何使用OpenCV源代码而不是共享库

时间:2018-02-07 12:44:32

标签: opencv opencv3.0

我有一个项目,我想使用其中一个opencv模块(特别是dnn)。 我没有构建dnn模块,而是想在我的项目中使用这些模块的源代码。通过这样做,我可以实时更改源代码并同时查看结果。

我有一个非常简单的场景,只有一个源文件:

的main.cpp

#include "iostream"
#include <opencv2/dnn.hpp>

int main(int argc, char *argv[])
{
    std::string ConfigFile = "tsproto.pbtxt";
    std::string ModelFile = "tsmodel.pb";

    cv::dnn::Net net = cv::dnn::readNetFromTensorflow(ModelFile,ConfigFile);


    return 0;
}

现在这个函数&#34; cv :: dnn :: readNetFromTensorflow&#34;在dnn模块中。我尝试了很多不同的方法在我的项目中嵌入dnn源代码,但都失败了!

例如,我第一次尝试在我的项目中的opencv的module / dnn /文件夹中包含每个cpp和hpp文件,但最终出现了错误,如

/home/user/projects/Tensor/tf_importer.cpp:28: error: 'CV__DNN_EXPERIMENTAL_NS_BEGIN' does not name a type

#include "../precomp.hpp" no such file or directory

HAVE_PROTOBUF is undefined 

and ....

我试图解决这些错误,但是发生了一些错误,更多未定义的MACRO和更多未定义的hpp文件!

#include "../layers_common.simd.hpp" no such file or directory
and many many more errors !

似乎我陷入了一段时间(真正的)错误循环!是否真的很难使用opencv模块源代码?

P.S。 对于那些询问我为什么要使用opencv源代码而不是使用共享库的人,我不得不说我要导入一个自定义张量流模型,opencv读取函数不支持我想知道确切的位置它崩溃了所以我可以解决它。

顺便说一句,我只使用c ++ 11函数和gcc作为Ubuntu 16.04中的编译器

0 个答案:

没有答案