首页 > 解决方案 > 如何设置包含路径,#include "opencv2/opencv.hpp"

问题描述

我正在尝试在此页面中使用 OpenCV 部分进行编译:安装 Darknet

完成后OPENCV = 1,我尝试重新制作,所以我make在暗网目录中做了。

目录如下。

(yolo) bash-3.2$ pwd
/Users/moray/darknet
(yolo) bash-3.2$ ls
LICENSE     LICENSE.gpl LICENSE.v1  backup      data        libdarknet.a    python      src
LICENSE.fuck    LICENSE.meta    Makefile    cfg     examples    libdarknet.so   results
LICENSE.gen LICENSE.mit README.md   darknet     include     obj     scripts

重新制作的结果就在这里。

(yolo) bash-3.2$ make
g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv`  -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
/bin/sh: pkg-config: command not found
./src/image_opencv.cpp:6:10: fatal error: 'opencv2/opencv.hpp' file not found
#include "opencv2/opencv.hpp"
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [obj/image_opencv.o] Error 1

所以我认为包含路径无法引用opencv.hpp,我查找了文件并找到了它。

(yolo) bash-3.2$ ls ~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp
/Users/moray/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp

因此我尝试更改#include "opencv2/opencv.hpp""include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp"./src/image_opencv.cpp

结果就在这里。

(yolo) bash-3.2$ make
g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv`  -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
/bin/sh: pkg-config: command not found
./src/image_opencv.cpp:7:10: fatal error: 
      '~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp' file not found
#include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [obj/image_opencv.o] Error 1

我不明白为什么会发生错误。请告诉我你的想法。

============================================

操作系统:macOS Catalina 10.15.1

(yolo) 是 anaconda(3) 中的虚拟环境

opencv 是由 (yolo) 中的 pip 命令安装的

(yolo) 中的 pip 命令的所有包:

(yolo) bash-3.2$ pip list
Package               Version            
--------------------- -------------------
certifi               2019.11.28         
numpy                 1.17.4             
opencv-contrib-python 4.1.2.30           
opencv-python         4.1.1.26           
pip                   19.3.1             
setuptools            42.0.2.post20191203
wheel                 0.33.6 

海湾合作委员会:

(yolo) bash-3.2$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.12)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

标签: opencvyolodarknet

解决方案


这个错误解释了它pkg-config: command not found。为了在 YOLO 中使用 OpenCV,您必须安装适用于C 或 C++程序的 OpenCV,而不是 Python。您可能使用 Python 的 pip 安装了 opencv。按照这些链接之一中的这些步骤安装 opencv:thisthis或 other tutorial。

之后,要检查您是否已正确安装 OpenCV 并可以在 C 程序中使用,请运行以下命令:

pkg-config --modversion opencv

如果它没有显示任何内容或显示错误的版本,请尝试重新安装 OpenCV或者您的机器可能无法正确找到 opencv 版本。
因此,将命令添加到您~/.bashrc的示例中:

vim ~/.bashrc
export PKG_CONFIG_PATH=/home/user/installation/OpenCV-3.4.0/lib/pkgconfig
source ~/.bashrc

注意:根据你的opencv安装目录更改路径,包含opencv.pc


推荐阅读