我有一个项目,我想使用其中一个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中的编译器