你可以在这里获取 2.4 分支源并构建它,我认为这是最好的解决方案,它在 ubuntu 服务器 18.04 上对我有用
https://github.com/opencv/opencv/tree/2.4
在将 2.4 分支下载为 zip 并解压缩后,从源代码构建 opencv 的说明可以在此处找到:
https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html
如果您不需要任何特殊的外来选项,基本的构建和安装说明可以总结如下:
单击绿色按钮并从上述 github 链接下载 opencv2.4 zip 版本;然后在命令行:(请注意,构建目录必须在 linux 文件系统驱动器上,例如 ext4)
unzip opencv-2.4.zip
cd opencv-2.4/
mkdir build
cd build
sudo apt install ninja-build ant cmake build-essential
cmake -GNinja ..
ninja
sudo ninja install
此时你现在可以用opencv2.4编译了!但是,在运行时,您可能会遇到“加载共享库时出错”,此附加命令可修复此问题:
sudo /sbin/ldconfig -v
为什么 ninja 而不是 make?ninja 可以在多个处理器上并行构建,因此速度更快;现在您可以使用 opencv 2.4.9 编译在 16.04 中工作的源代码;如果你下载源代码并如上所示编译它,你就完成了,你可以在这里停下来,这在 xubuntu 20.04 上对我有用;另见sigfriddo的回答;
如果您不想下载源代码并编译,您可以查看其他内容:看起来像
sudo apt-get install libopencv-dev
在干净的 ubuntu 18.04 上会导致 opencv 安装,如果您使用 C++ opencv 函数,则该安装有效,但如果您使用 C opencv 函数,则该安装无效。在这种情况下,它会在 C opencv 标头中显示许多错误页面(即使对于仅包含 opencv 标头和指向 opencv 库的链接的空程序也是如此)-因此它确实找到了标头和库。
但是,完全相同的代码也可以在干净的 ubuntu 14.04 和 ubuntu 16.04 上完美编译和运行。可悲的是
apt-cache policy libopencv-dev
此命令显示只有一个版本的 opencv 可用于 ubuntu 18.04,但是,如果您安装 ubuntu/xubuntu 16.04,您将获得一个也适用于 C 代码的版本。
假设您正在寻找的版本确实存在,或者会在某个时候出现在 ubuntu 18.04 上;16.04 版本字符串是 2.4.9.1+dfsg-1.5ubuntu1 - 在这种情况下,安装该(非默认)版本的命令将是,例如:
sudo apt-get install libopencv-dev=2.4.9.1+dfsg-1.5ubuntu1
请注意,您需要使用上面显示的 apt-cache policy 命令检查以获取确切的版本字符串;例如,对于 build-essential,安装 ubuntu 18.04 中包含的默认版本,以下 2 个命令是等效的:
sudo apt-get install build-essential
sudo apt-get install build-essential=12.4ubuntu1
在某些情况下,您可以从 /var/cache/apt/archives/ 中删除 *.deb 文件,然后安装所需的软件包,并将新的 *.deb 文件从该目录从 16.04 系统复制到 18.04 系统,然后使用 dpkg -i *.deb 安装它们;但这对于少数没有依赖关系的包最有效;libopencv-dev 有很多包和依赖项,所以这不起作用;
因此您可以尝试下载源代码并从源代码构建;编辑
/etc/apt/sources.list
取消注释 deb-src 行然后执行
sudo apt-get update
然后须藤
apt-get source libopencv-dev