我尝试使用Opencv 3.1.0的dnn模块进行一些对象检测,我在这里按照教程进行操作:Opencv dnn module tutorial
根据我的理解,包含dnn模块的额外模块应该使用Opencv源构建。所以我遵循本教程:Build Opencv with Extra Modules。
但是,当我尝试在Microsoft Visual Studio 2013中编译这个简单的代码时,
#include <opencv2\dnn.hpp>
#include <opencv2\core.hpp>
using namespace cv;
using namespace cv::dnn;
void main() {
}
1&gt; ------ Rebuild All started:Project:WithDnnModule,Configuration:Debug Win32 ------ 1 GT; DnnTest.cpp 1&gt; DnnTest.obj:错误LNK2019:未解析的外部符号“private:void __thiscall cv :: String :: deallocate(void)”(?deallocate @ String @ cv @@ AAEXXZ)在函数“public:__thiscall cv :: String”中引用::〜String(void)“(?? 1String @ cv @@ QAE @ XZ) 1&gt; C:\ Rescourse \ Project \ opencvdnn \ WithDnnModule \ Debug \ WithDnnModule.exe:致命错误LNK1120:1未解析的外部 ==========重建全部:0成功,1失败,0跳过==========
如果我不包含opencv2 \ dnn.hpp,我可以成功构建代码。
请帮帮我。
答案 0 :(得分:1)
我有一个非常类似的问题。原来我试图链接x64 opencv lib / dll,但我的项目设置为x86。
答案 1 :(得分:0)
尝试使用this tutorial在计算机上的自定义目录中安装OpenCV 3.10。如果您安装了任何其他OpenCV实例,则无关紧要。
我想你会在/home/ubuntu/opencv310
中安装它:
对于安装,您应该通过将contrib目录放在像/home/ubuntu/opencv_contrib
:
ccmake -DCMAKE_INSTALL_PREFIX=/home/ubuntu/opencv310 -DWITH_CUDA=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DOPENCV_EXTRA_MODULES_PATH=/home/ubuntu/opencv_contrib/modules ..
您将运行this example:
g++ -I/home/ubuntu/opencv310/include -L/home/ubuntu/opencv310/lib caffe.cpp -lopencv_bgsegm -lopencv_bioinspired -lopencv_calib3d -lopencv_ccalib -lopencv_core -lopencv_datasets -lopencv_face -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_line_descriptor -lopencv_ml -lopencv_objdetect -lopencv_optflow -lopencv_photo -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_surface_matching -lopencv_text -lopencv_tracking -lopencv_videoio -lopencv_video -lopencv_videostab -lopencv_xfeatures2d -lopencv_ximgproc -lopencv_xobjdetect -lopencv_xphoto -lopencv_dnn -o caffe
现在您可以使用./caffe
运行它。
答案 2 :(得分:0)
您没有包括正确的库。 其中包括所有OpenCV库: