4

我在我的电脑上安装了 ubuntu 18.04,并且我设法安装了最新版本的 opencv。不过,我需要在我的电脑上运行旧版本的 opencv,即 opencv-2.4.9。所以我卸载了新版本的opencv,为了安装旧版本。我遵循了迄今为止我在互联网上可以找到的任何指令,但不幸的是,它们实际上都是为 ubuntu 14.04 或更早版本准备的,所以它们都不起作用。因此,无需进一步详细说明这些说明,我想问您,您是否知道在 ubuntu 18.04 (LTS) 上安装 opencv-2.4.9 的任何可能性?

最好的问候,孤狼

4

2 回答 2

3

jmarina 的回答在这个问题上帮助了我很多。就我而言,我没有使用 opencv/opencv 存储库,而是使用了https://github.com/skvark/opencv-python.git中的分支 2.4,如本文中所建议的那样尽管它使用 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
于 2020-12-02T03:39:57.753 回答
2

你可以在这里获取 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
于 2018-06-21T11:06:39.230 回答