Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QtCreator上对opencv dnn的未定义引用_C++_Opencv_Neural Network_Qt Creator - Fatal编程技术网

C++ QtCreator上对opencv dnn的未定义引用

C++ QtCreator上对opencv dnn的未定义引用,c++,opencv,neural-network,qt-creator,C++,Opencv,Neural Network,Qt Creator,错误 无法将OpenCV DNN模块与QtCreator:/home/joseph/Documents/dev/DNN_OpenCV/utils链接。cpp:52:错误:未定义对`cv::DNN::dnn4_v20200609::Net::Net()的引用 上下文 您好,我正在尝试加载一些带有OpenCV DNN(OpenCV 4.4.0)模块的模型,以便作为更大项目的一部分进行一些分类/分割。 为此,我使用QtCreator(5.15.0)和gpp(10.1.0)。OpenCV是使用OpenC

错误

无法将OpenCV DNN模块与QtCreator:/home/joseph/Documents/dev/DNN_OpenCV/utils链接。cpp:52:错误:未定义对`cv::DNN::dnn4_v20200609::Net::Net()的引用

上下文

您好,我正在尝试加载一些带有OpenCV DNN(OpenCV 4.4.0)模块的模型,以便作为更大项目的一部分进行一些分类/分割。 为此,我使用QtCreator(5.15.0)和gpp(10.1.0)。OpenCV是使用OpenCV contrib从源代码构建的

我的.pro文件如下所示:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

INCLUDEPATH += "/usr/local/include/opencv4"

LIBS += -L"/usr/local/lib/" \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_core
-lopencv_dnn


SOURCES += \
    main.cpp \
    utils.cpp

HEADERS += \
  utils.hpp
到目前为止,该项目非常简单,我能够用OpenCV提示图像,因此似乎找到了常用的库。但是,每当我在DNN模块中使用某些内容时,我都会出现以下错误:/home/joseph/Documents/dev/DNN_opencv/utils.cpp:52:错误:未定义对`cv::DNN::dnn4_v20200609::Net::Net()的引用 这是在调用
cv::dnn::Net时发生的是否使用命名空间

我注意到在文件/usr/local/include/opencv4/opencv2/dnn/version.hpp中有一个标志
#define OPENCV_dnn_API_version 20200609
,它对应于要找到Net类的dnn版本,但我不知道这会把我引向何方


我对Qmake和OpenCV没有太多的经验,所以这可能是一个简单的解决方案,但我希望能得到一些帮助。谢谢

对于那些面临同样问题的人,我成功地安装了它,并在QtCreator中使用它,使用cmakegui检查所有正确的标志。我相信这是一个关于OpenCV contrib模块的安装错误。 此链接是标记正确标志的良好教程:


另外,关于
错误,我遇到了一个奇怪的错误:调用std::shared_ptr::shared_ptr(const char*&)
时没有匹配的函数,这只是因为调用了
print(…)
您是否尝试在一个简单的控制台项目上运行代码而不是
printf
cout

了?是的,我尝试了使用
g++main.cpp utils.cpp-o output
pkg config--cflags--libs opencv``手动编译,
-lopencv dnn
确实在--libs中,但我也有同样的问题。实际上,每当我尝试做一些前向传播时,网络上的错误就会消失,我有
/usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp:100:72:error:no匹配函数调用'std::shared_ptr::shared_ptr(const char*&)
,可能是因为contrib没有正确构建,你知道我怎么检查吗?