彻底删除 OpenCV 3.1

彻底删除 OpenCV 3.1

我几个月前安装了 OpenCv 3.1,但由于我的作业需要较低版本的 openCv,因此出现了问题。现在我在网上搜索并找到了一些卸载功能。对我来说似乎有用,但是当我尝试使用此代码安装 OpenCv 时:

sudo apt-get install libdevil-dev libboost-dev cmake cmake-qt-gui gcc- 4.8 g++-4.8 libgtk2.0-dev libeigen3-dev mesa-common-dev libopencv-dev

它显示我的版本已经是最新的。有人能帮助我吗?

dev cmake cmake-qt-gui gcc-4.8
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
»libboost-dev« ist bereits die neuste Version (1.58.0.1ubuntu1).
»gcc-4.8« ist bereits die neuste Version (4.8.5-4ubuntu2).
»libdevil-dev« ist bereits die neuste Version (1.7.8-10).
»cmake« ist bereits die neuste Version (3.5.1-1ubuntu3).
»cmake-qt-gui« ist bereits die neuste Version (3.5.1-1ubuntu3).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 13 nicht aktualisiert.

答案1

在下面的回答中,我假设您从源代码或可能从 PPA 安装了版本 3.1。另请注意,我尚未将 OpenCV 配置为在我的安装中使用 Python。

删除旧安装

方法 1

如果您通过 CMake 编译了 OpenCV 版本 3.1,则应该仍保留编译源代码的目录(即您的构建目录)。导航到该目录。到达那里后,您可以键入make uninstall以删除安装过程中移动的所有文件。

警告:我读到过这可能会导致问题,但我个人并未亲眼目睹任何问题。

笔记:此方法会留下空目录。它们不会引起任何问题,但如果您想手动删除它们,也可以这样做。

方法 2(更危险!)

您可以使用该命令sudo find / -name "*opencv*" -exec rm -i {} \;找到名称中包含单词 opencv 的所有文件并删除。照原样,此命令将提示您确认是否要删除找到的每个单个文件。这将需要很长时间。警告:删除文件时要小心谨慎。在继续操作之前,请务必检查文件的位置并确保可以安全删除。

安装旧版本的 OpenCV

笔记:我主要使用 gcc 和 g++,不使用 IDE。如果您想使用 IDE,可能需要执行额外或不同的步骤。

通常,我发现设置 OpenCV(以及我从源代码构建的其他库)的最佳方法是在我的 HOME 目录中创建一个名为 split-libs 的文件夹(您可以随意命名)。然后在里面为库本身创建一个目录,提取源代码并使用自定义安装前缀对其进行编译。使用 CMake 编译 OpenCV 时,这很简单。以下是我在我的机器上执行的操作:

  • 安装所有必需的依赖项。这可能有点棘手,但网上有很多指南详细介绍了从源代码编译 OpenCV 所需的所有依赖项。
    • 通常,OpenCV 的每个版本都会在版本文档中包含必需和可选依赖项列表。您可以通过以下方式找到任何特定版本的文档这里并单击文档 > OpenCV 教程 > OpenCV 简介 > Linux 中的安装。
    • 可能存在特定于您需求的可选依赖项。您可以自行找到这些依赖项。如果您不知道 OpenCV 有哪些构建选项,请查看“OpenCV cmake 选项”Cmake列表.txt源代码中包含的文件。

设置依赖项后,您可以使用 CMake GUI 或终端进行构建。 对于 GUI

  • 打开并选择浏览源:然后选择包含未压缩源代码的文件夹。
  • 选择浏览构建:然后选择所需的构建目录
  • 单击添加条目:然后单击显示 BOOL 的下拉菜单并选择 PATH。在名称文本字段中输入 CMAKE_INSTALL_PREFIX。然后提供安装路径。
  • 单击“生成”以查看可用的配置选项。末尾带有路径的选项表示 OpenCV 已成功找到库。如果没有,则必须安装或手动指向库(如果位于非标准位置)。
  • 一旦所有内容配置正确,请单击“生成”以创建包含这些配置的 makefile。
  • 接下来输入make -j$(nproc)。这将编译代码。
    • make 的 -j 选项将作业分成多个进程。
    • $(nproc) 向 -j 提供您拥有的处理器数量,这将允许多任务处理和更快的编译。
    • 作为参考,在配备 i7 和 8GB RAM 的笔记本电脑上,使用 extra-contrib-modules 编译 OpenCV 大约需要 20-30 分钟。
  • 编译完成后make install,将所有文件移动到安装目录。

从航站楼

  • 导航到您的构建目录(如果没有,请使用 mkdir 创建一个)并输入cmake -DCMAKE_INSTALL_PREFIX=absolute_path_to_installation_directory -DCMAKE_BUILD_TYPE="Release"。添加额外的 -D构建标志=选项以满足您的需求。笔记:等号后面或前面不要加空格。
  • 一旦命令配置了所有您想要的选项,请按 Enter。这不会花太长时间。
    • 您可能会看到一些错误。大多数错误并不严重,不会造成问题。
    • 如果您忘记了构建选项,只需使用 cmake 命令并输入您忘记的标志,然后按 Enter 即可重新生成 makefile。
  • 接下来输入make -j$(nproc)。这与从 GUI 安装相同。
  • 编译完成后输入make install

完成后,我使用别名和 pkg-config 使编译更容易。在安装目录中/lib/pkgconfig/有一个名为 opencv.pc 的文件。这是 pkg-config 可以根据需要自动配置库的文件。不太安全的选项是将此 .pc 文件复制或移动到 pkg-config 默认查找的目录中。由于这些是系统文件夹,因此通常不建议将外部存储库的文件放在其中。相反,我打开 ~/.bashrc 文件并在底部放置以下行 export PKG_CONFIG_PATH="$opencv2prefix/lib/pkgconfig" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$opencv2prefix/lib" alias opencv2="pkg-config --cflags --libs opencv2"

在上面的几行中,$opencv2prefix 是一个变量,其中包含我安装 OpenCV 的文件夹的路径。您的别名命令可能不是使用 opencv2,而是 opencv。后面的 opencv2 指--libs的是 .pc 文件的名称。您的情况可能有所不同。我更改了我的名称,因为我的机器上有两个版本的 OpenCV。

现在,当我使用 gcc 或 g++ 进行编译时,我只需输入g++ main.cpp $(opencv2)。将 $() 中的内容替换为执行 pkg-config 的别名的名称。

相关内容