使用来自 CAFFE 的 Opencv 3.1

Using Opencv 3.1 from CAFFE

我正在尝试从 caffe 内部使用 OPENCV 3.1。这是我的测试代码

#include <caffe/caffe.hpp>
#ifdef USE_OPENCV
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/utility.hpp>
#include <opencv2/tracking.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#endif  // USE_OPENCV
#include<iostream>

#ifdef USE_OPENCV

int main(){
    std::cout<<"USE_OPENCV value is 1\n";
    return 0;
}
#else
int main(){
    std::cout<<"USE_OPENCV value is 0\n";
    return 0;
}
#endif

我正在使用以下命令编译它

 g++ -I path_to_caffe/distribute/include/  test3.cpp -std=c++0x  -lboost_system

它编译并在执行时给出以下输出:

USE_OPENCV value is 0

在编译 caffe 之前,我在 Makefile.config 文件中做了以下更改:

USE_OPENCV := 1
. . .
OPENCV_VERSION := 3
. . .
USE_PKG_CONFIG := 1

编译caffe时,我先清理了它,然后使用以下命令编译它:

make clean
make all -j $(($(nproc) + 1))
make test
make runtest
make pycaffe 
make distribute

它编译没有报错,但是在测试我的测试文件时它没有给出我期望的输出。

所有荣耀归于Shai。解决方案是添加 -DUSE_OPENCV 标志 .

g++ -I path_to_caffe/distribute/include/ test3.cpp -std=c++0x -lboost_system -DUSE_OPENCV