您可以在此处获取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函数,则无法正常工作。在这种情况下,即使对于仅包括OpenCV头文件并链接到OpenCV库的空程序,它也会显示许多页C OpenCV头文件中的错误-因此它找到了头文件和库。
然而,在干净的Ubuntu 14.04和Ubuntu 16.04上完全相同的代码编译和运行都非常完美。可悲的是。
apt-cache policy libopencv-dev
这个命令显示在Ubuntu 18.04上只有一个版本的OpenCV可用。然而,如果你安装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中安装默认版本,以下两个命令是等效的:
sudo apt-get install build-essential
sudo apt-get install build-essential=12.4ubuntu1
在某些情况下,您可以从 /var/cache/apt/archives/ 中删除 *.deb 文件,然后安装所需的软件包,并从此目录中复制新的 *.deb 文件(例如从 16.04 系统),然后使用 dpkg -i *.deb 命令来安装它们。但是,这种方法最适用于没有依赖关系的少量软件包;libopencv-dev 有许多软件包和依赖项,因此这种方法不起作用。
因此,您可以尝试从源代码下载并进行构建。
/etc/apt/sources.list
取消注释deb-src行,然后执行以下操作:
sudo apt-get update
然后使用sudo命令
apt-get source libopencv-dev