在 ubuntu 18.04 上安装 opencv 2.4.9
Posted
技术标签:
【中文标题】在 ubuntu 18.04 上安装 opencv 2.4.9【英文标题】:installing opencv 2.4.9 on ubuntu 18.04 【发布时间】:2018-06-03 10:58:07 【问题描述】:我在我的电脑上安装了 ubuntu 18.04,并且我设法安装了最新版本的 opencv。 不过,我需要在我的电脑上运行旧版本的 opencv,即 opencv-2.4.9。 所以我卸载了新版本的 opencv,以便安装旧版本。我遵循了迄今为止在互联网上可以找到的任何指令,但不幸的是,它们实际上都是为 ubuntu 14.04 或更早版本准备的,所以它们都不起作用。 因此,无需进一步详细说明这些说明,我想问您,您是否知道在 ubuntu 18.04 (LTS) 上安装 opencv-2.4.9 的任何可能性?
最好的问候, 独狼
【问题讨论】:
我遵循的一条指令在以下链接中给出:samontab.com/web/2014/06/… 我不想进一步详细说明,因为我认为该指令不能像这样用于 ubuntu 18.04。但如果有必要,我可以为您提供更多信息,说明我究竟做了什么以及我当然得到了哪些错误。 【参考方案1】:jmarina's 的回答在这个问题上帮助了我很多。就我而言,我没有使用 opencv/opencv 存储库,而是使用了 https://github.com/skvark/opencv-python.git 中的分支 2.4,正如 post 中所建议的那样(尽管它使用 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
【讨论】:
【参考方案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 上,如果您使用 C++ opencv 函数,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
然后是 sudo
apt-get source libopencv-dev
【讨论】:
以上是关于在 ubuntu 18.04 上安装 opencv 2.4.9的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu18.04安装opencv和opencv_contrib