安装pip时,在C++中包含OpenCV



我已经安装了带有pip(pip3 install opencv-python(的OpenCV 4.4,它在python中运行得很好。

然而,我现在想切换到C++(既是为了学习,也是为了看看我能获得什么性能增益(,例如执行它,但我不知道如何使用g++正确编译它,以包括OpenCV的头。

运行cv2.__file会得到'.../.local/lib/python3.8/site-packages/cv2/cv2.cpython-38-x86_64-linux-gnu.so'

如果可能的话,我更愿意只使用g++,而不是像CMakeList这样的工具来准确地理解我在做什么。作为C++世界的新手,我承认我对整体构建和链接过程有点困惑。如有任何帮助,我们将不胜感激;(

我也在尝试做同样的事情,如果你真的想做的话,可以这样做:(我用来编译的命令如下:

g++ -g {file} -o {fileBasenameNoExtension} `pkg-config --cflags --libs opencv4`

然而,如果使用pip安装opencv4包,则可能无法开箱即用地识别它。因此,您必须通过将包文件opencv4.pc的路径添加到PKG_CONFIG_PATH环境变量来定义该文件的路径。我的是:

  • */home/{user}/anaconda3/pkgs/opencv-46.60-py39hd653453_2/lib/pkgconfig">

如果有人想使用CMakeList,还有一种方法。查看https://stackoverflow.com/a/63456129/2039339答复

为了使find_package(OpenCV REQUIRED)正常工作,您必须通过将以下行添加到CMakeList(替换为您的确切位置(来设置OpenCV_DIR来定义OpenCV cmake文件的路径:

set(OpenCV_DIR "/home/{user}/anaconda3/pkgs/opencv-4.6.0-py39hd653453_2/lib/cmake/opencv4")

然后在你的代码中,你可以包括OpenCV标题

#include <opencv2/opencv.hpp>

注意:然而,我的OpenCV pip安装不包含一些依赖项,如libQt*libopenjp2等,所以我仍然需要对此进行工作:(

最新更新