opencv - openpose 编译告诉 undefined reference cv::VideoCapture::VideoCapture(cv::String const&)

标签 opencv caffe

我已经在禁用 GPU 的情况下编译了 caffe,然后

cp caffe/build/Makefile openpose/Makefile.conf

运行

 make all -j 6

得到这些错误:

-- Generating done
-- Build files have been written to: /path/to/caffe/build
CXX/LD -o ._release/examples/tutorial_thread/1_openpose_read_and_display.bin
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::VideoCapture(cv::String const&)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::set(int, double)'
._release/lib/libopenpose.so: undefined reference to `op::renderPartAffinityFieldGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, int, float)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::release()'
._release/lib/libopenpose.so: undefined reference to `op::renderBodyPartsGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, float)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::operator>>(cv::Mat&)'

找不到 opencv,我从源代码编译了最新的 opencv 3.2-dev,所有 opencv 程序(c++ 和 python)都可以工作,那么为什么 openpose 找不到 opencv?

最佳答案

Caffe 实际上识别了 opencv,这些引用是在 opencv3.2 中被丢弃的方法,但在 opencv 3.1.0 或更早版本中可用。我在安装 3.2 时遇到了同样的问题,最终降级到 3.1.0 解决了这个问题对我来说,here是安装 opencv 3.1.0 的好指南,根据

this讨论,似乎标准是支持 Ubuntu 源中可用的 opencv,我认为你现在不能通过 apt-get 安装 opencv3.2,只需要从源构建

关于opencv - openpose 编译告诉 undefined reference cv::VideoCapture::VideoCapture(cv::String const&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236198/

相关文章:

c++ - OpenCV:是否可以在 Linux 中的进程之间共享网络摄像头

python - 平均形状与输入形状不兼容 - IO.PY 中的 CAFFE 分类错误

python - 设置 GLOG_minloglevel=1 以防止在 shell 中从 Caffe 输出

machine-learning - caffe net 从 hdf5 层获取下一批

machine-learning - 在 ILSVRC12 上学习 ZFNet 时测试精度无法提高

c++ - Opencv,在图像中的对象周围绘制一个框

python 将 IplImage 转换为 Qimage

c++ - 无法使用 openCv 从 D-Link DCS 932L 获取视频源

c++ - Opencv轮廓一维离散傅里叶变换

python - 如何使用 Caffe 框架提取预训练 Alex Net 模型的卷积参数