news 2026/5/14 11:56:22

告别命令行:用 CMake-GUI 在 Ubuntu 18.04 上可视化编译 OpenCV 3.4.10 + Contrib 模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别命令行:用 CMake-GUI 在 Ubuntu 18.04 上可视化编译 OpenCV 3.4.10 + Contrib 模块

告别命令行:用 CMake-GUI 在 Ubuntu 18.04 上可视化编译 OpenCV 3.4.10 + Contrib 模块

对于许多开发者而言,编译开源库往往意味着面对一堆晦涩的命令行参数和冗长的终端输出。尤其是像 OpenCV 这样功能丰富但配置复杂的计算机视觉库,传统的命令行编译方式常常让人望而生畏。本文将介绍一种更友好的替代方案——使用 CMake-GUI 工具在 Ubuntu 18.04 上可视化编译 OpenCV 3.4.10 及其 Contrib 模块,让编译过程变得直观可控。

1. 环境准备与源码获取

在开始编译之前,我们需要确保系统环境已经准备就绪。首先检查并安装必要的依赖项:

sudo apt update sudo apt install build-essential cmake cmake-qt-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

接下来获取 OpenCV 3.4.10 及其 Contrib 模块的源码。建议在用户主目录下创建一个专门的工作目录:

mkdir ~/opencv_build && cd ~/opencv_build wget -O opencv.zip https://codeload.github.com/opencv/opencv/zip/3.4.10 wget -O opencv_contrib.zip https://codeload.github.com/opencv/opencv_contrib/zip/3.4.10 unzip opencv.zip unzip opencv_contrib.zip mv opencv-3.4.10 opencv mv opencv_contrib-3.4.10 opencv_contrib

这样的目录结构清晰明了:

~/opencv_build/ ├── opencv/ # 主源码目录 └── opencv_contrib/ # 扩展模块目录

2. 使用 CMake-GUI 配置编译参数

与传统命令行方式不同,CMake-GUI 提供了图形化的配置界面。在终端中执行以下命令启动 GUI:

cd ~/opencv_build/opencv mkdir build && cd build cmake-gui ..

界面启动后,你会看到以下关键区域:

  1. 源码路径:自动填充为~/opencv_build/opencv
  2. 构建路径:自动填充为~/opencv_build/opencv/build
  3. 配置选项面板:显示所有可配置参数

点击"Configure"按钮,选择"Unix Makefiles"作为生成器,保持其他选项默认,然后点击"Finish"开始初始配置。

配置完成后,界面会显示红色高亮的配置项。我们需要重点关注以下几个关键参数:

参数名称推荐值说明
BUILD_opencv_worldON将所有模块打包成单个库文件
CMAKE_BUILD_TYPERELEASE生成优化后的发布版本
OPENCV_EXTRA_MODULES_PATH~/opencv_build/opencv_contrib/modulesContrib 模块路径
WITH_QTON启用 Qt 支持(可选)
WITH_OPENGLON启用 OpenGL 支持(可选)

提示:在填写OPENCV_EXTRA_MODULES_PATH时,可以直接点击右侧的"..."按钮浏览选择目录,避免手动输入出错。

3. 解决常见配置问题

在配置过程中可能会遇到一些典型问题,以下是解决方案:

问题1:Python环境冲突

如果系统安装了多个Python环境(如Anaconda),可能会报类似错误:

Cannot generate a safe runtime search path for target opencv_world

解决方法:

  1. 暂时注释掉~/.bashrc中Anaconda的环境变量
  2. 执行source ~/.bashrc更新环境
  3. 重新运行 CMake-GUI

问题2:缺失依赖项

常见的缺失依赖错误可以通过安装以下包解决:

sudo apt install libtbb-dev libeigen3-dev libopenblas-dev liblapack-dev libgstreamer-plugins-base1.0-dev

配置完成后,点击"Generate"按钮生成Makefile。如果一切顺利,你将看到"Configuring done"和"Generating done"的提示。

4. 编译与安装

虽然配置使用了图形界面,但编译过程仍需在终端完成。在build目录下执行:

make -j$(nproc) # 使用所有CPU核心并行编译 sudo make install

编译时间取决于硬件性能,通常需要15-30分钟。完成后,OpenCV将被安装到/usr/local目录下。

最后配置系统环境:

  1. 添加库路径:
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig
  1. 设置pkg-config路径(添加到~/.bashrc末尾):
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig' >> ~/.bashrc source ~/.bashrc

5. 验证安装

创建一个简单的测试程序验证安装是否成功:

// test_opencv.cpp #include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat image = cv::imread("test.jpg"); if(image.empty()) { std::cout << "Could not open image" << std::endl; return -1; } cv::imshow("Display window", image); cv::waitKey(0); return 0; }

编译并运行测试程序:

g++ test_opencv.cpp -o test_opencv `pkg-config --cflags --libs opencv` ./test_opencv

如果能看到图像窗口弹出,说明OpenCV已成功安装并正常工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 11:56:07

2026年超声波清洗机性价比大揭秘:你的明智之选

在当今追求高品质生活的时代&#xff0c;超声波清洗机凭借其高效、便捷的清洁能力&#xff0c;成为了众多家庭和商家的心头好。然而&#xff0c;市场上超声波清洗机品牌众多&#xff0c;质量参差不齐&#xff0c;价格也相差甚远。在2026年&#xff0c;到底哪家超声波清洗机才是…

作者头像 李华
网站建设 2026/5/14 11:51:08

Navicat密码解密工具:3分钟快速找回遗忘的数据库连接密码

Navicat密码解密工具&#xff1a;3分钟快速找回遗忘的数据库连接密码 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 你是否曾经因为忘记Navicat保存的数…

作者头像 李华
网站建设 2026/5/14 11:50:31

突破软件壁垒:GoB插件实现Blender与ZBrush无缝数据互通实战指南

突破软件壁垒&#xff1a;GoB插件实现Blender与ZBrush无缝数据互通实战指南 【免费下载链接】GoB Fork of original GoB script (I just added some fixes) 项目地址: https://gitcode.com/gh_mirrors/go/GoB GoB插件是一款专为3D艺术家设计的开源工具&#xff0c;通过优…

作者头像 李华
网站建设 2026/5/14 11:49:19

MFC核心控件实战:从基础布局到数据交互的界面构建

1. MFC控件基础与项目环境搭建 第一次接触MFC控件时&#xff0c;我被那些密密麻麻的属性选项搞得头晕眼花。后来才发现&#xff0c;只要掌握几个核心控件&#xff0c;就能搭建出功能完善的Windows桌面应用。这次我们以"员工信息管理系统"为例&#xff0c;从零开始构建…

作者头像 李华
网站建设 2026/5/14 11:48:21

开源大模型插件化框架OpenClaw:构建标准化AI工具调用生态

1. 项目概述&#xff1a;一个面向开源大模型生态的插件化工具集 最近在折腾开源大模型本地部署和应用开发时&#xff0c;发现了一个挺有意思的项目&#xff1a; managelm/openclaw-plugin 。乍一看这个名字&#xff0c;可能会有点摸不着头脑&#xff0c;它不像 langchain 、…

作者头像 李华