在Ubuntu 18.04上安装OpenCV 2.4.9

4
我在我的电脑上安装了Ubuntu 18.04,并成功安装了最新版本的OpenCV。但是,我需要在我的电脑上运行旧版本的OpenCV,即OpenCV-2.4.9。因此,我卸载了新版本的OpenCV,以便安装旧版本。我按照互联网上找到的所有说明进行操作,但不幸的是,它们都是为Ubuntu 14.04或更早版本准备的,所以没有一个能够正常工作。
因此,不再深入这些说明的细节,我想问你是否知道在Ubuntu 18.04(LTS)上安装OpenCV-2.4.9的任何可能性?
最好的问候, 孤狼

我遵循的一条指令在以下链接中给出:https://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/ 我不想深入详细,因为我认为该指令不能直接用于 Ubuntu 18.04。但如果需要,我当然可以提供更多关于我具体做了什么和获得了什么错误的信息。 - lonewolf07
2个回答

3

您可以在此处获取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

3

jmarina's的回答对我的问题有很大帮助。在我的情况下,我使用了https://github.com/skvark/opencv-python.git的2.4分支,而不是使用opencv/opencv存储库,正如这篇帖子中建议的那样(它使用2.4.13版本)。

我的步骤如下:

git clone --recursive https://github.com/skvark/opencv-python.git
cd opencv-python/opencv
git checkout 2.4
mkdir -p build & cd build
cmake ../
cmake --build .
make install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接