几个星期以来,我一直在尝试在 ubuntu 上安装 opencv4.0.1。我已经按照opencv 安装说明进行操作 ,我可以制作和编译库,但是安装后,pkgconfig 仍然找不到库,当我尝试构建程序时,我得到了诸如缺少库错误之类的东西。
$ pkg-config --cflags opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
根据这个问题,OpenCV 放弃了对 pkg-config 的支持。但是,可以按如下方式添加:
配置
运行时
cmake
添加附加参数,-D OPENCV_GENERATE_PKGCONFIG=YES
例如然后
make
和sudo make install
以前一样。测试
使用名称
opencv4
而不仅仅是opencv
例如概括:
此方法手动下载、提取、编译和安装最新的 OpenCV 4.0.1。还提供了一个工作示例代码
main.cpp
,以证明成功安装 OpenCV。按照以下步骤安装 OpenCV:
更新 Ubuntu 18.04。
发出以下命令:
安装依赖项。
发出以下命令:
获取 OpenCV:从OpenCV Releases和 opencv 4.0.1 testdata opencv_extra-master.zip下载 opencv 4.0.1 。
OpenCV 4.0.1 zip包的解压
现在您已经为您的系统下载了正确的存档包到~/Downloads文件夹中,运行以下命令来提取 OpenCV。
要将 zip 文件解压缩
opencv-4.0.1.zip
到/opt/opencv
文件夹中,请运行以下命令:现在提取
opencv_extra-master.zip
一个大小为 490.3 MB 的大文件,其中包含测试所需的测试套件opencv 4.0.1
。运行以下命令完成提取:symlink latest
指向当前版本 opencv-4.0.1 的设置发出以下命令来创建
symlink
:为什么你需要最新的符号链接?
Symlink latest
始终跟踪 OpenCV 安装的当前版本。明天,让我们说,一个新版本 5.0.1 到了,然后安装那个版本。现在您通过发出以下命令删除
symlink latest
指向旧版本 4.0.1:'Symlink latest' 指向当前版本 opencv-4.0.1,但最新版本 5.0.1 的到来导致版本 4.0.1 中的 'symlink latest' 严重。
现在
symlink latest
使用以下命令创建指向较新版本的 5.0.1:现在'symlink latest'指向更新版本的opencv-5.0.1。请注意,没有名为 5.0.1 的版本,这只是一个“虚构”版本,用于展示“最新符号链接”的强大功能。
同时,您仍可以保留旧版本而不删除它们。由于某些原因,您想使用旧版本,您只需切换
symlink latest
指向旧版本即可!您不必更改任何其他设置。在随后的第 8 步中,您将设置
PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH, and OPENCV_TEST_DATA_PATH
环境变量。所有这些环境变量的值都涉及symlink latest
,因此即使稍后您切换到较新的版本,这些设置也始终保持不变!安装
OpenCV 4.0.1
zip包创建一个临时构建目录
release
,我们将其记为<cmake_build_dir>
,您要在其中放置生成的 Makefile、项目文件以及目标文件和输出二进制文件并输入。要构建和安装 OpenCV,请发出以下命令:
笔记:
-D OPENCV_GENERATE_PKGCONFIG=YES
.pc
文件pkg-config
并安装它。cmake
使用OpenCV
.从构建目录
release
执行make
,建议在多个线程中执行此操作:要更新
links/cache
动态加载器使用的:在本地为 opencv-4.0.1 运行 testsuite
在开始测试用例之前,
OPENCV_TEST_DATA_PATH
必须设置环境变量。发出以下命令以开始所有测试用例:
为什么测试用例
Core_globbing.accuracy
失败了?我们刚刚构建了我们的 OpenCV 源代码,并尝试通过
"./bin/opencv_test_core"
从"/opt/opencv/latest/release"
文件夹运行来测试编译。该测试用例失败,因为没有输入图像,因此拍摄任何
.jpg
和.png
图片并将这两张图片重命名为lena.jpg
和lena.png
并将它们复制到"/opt/opencv/latest/release/bin"
文件夹中并再次重新运行所有测试用例。发出以下命令以再次重新运行所有测试用例:
设置 PATH 环境变量
OpenCV需要设置
PATH
环境变量,如下图所示。opencv.sh
在目录下创建一个名为的文件/etc/profile.d/
。添加以下内容:
保存并关闭文件。使用以下命令使其可执行。
然后,通过运行以下命令永久设置环境变量:
注销或重新启动系统。
现在,检查
PATH
环境变量:PATH
环境变量应该有/opt/opencv/latest/bin
目录和/opt/opencv/latest/release/bin
目录。opencv4.pc 在哪里?
发出以下命令来定位
opencv4.pc
:opencv4.pc 将在/opt/opencv/latest/lib/pkgconfig目录中可用。
现在,使用命令检查 python3.7 版本:
opencv_version
二进制文件在哪里?现在,检查
opencv_version
使用以下命令的位置:opencv_version 将位于/opt/opencv/latest/release/bin目录中。
现在,检查
opencv_version
使用命令:现在检查是否
OpenCV
安装在机器上,运行以下命令:样品测试:
~/code
目录。main.cpp
main.cpp
_~/code
sample.jpg
小于 1 MB 的大小~/code
进行测试。发出以下命令:
示例代码:
编译
main.cpp
运行
./output
如下:示例程序的输出
main.cpp
:构建库后,您需要安装它以便在不指定构建目录的情况下找到它。
这可能会解决您的问题。