ubuntu搭建opencv开发环境

步骤 1: 更新系统

在终端中输入以下命令,确保系统和软件包管理器是最新的:

bash 复制代码
sudo apt update
sudo apt upgrade

步骤 2: 安装 OpenCV 的依赖项

安装编译 OpenCV 所需的依赖项:

bash 复制代码
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
  libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev \
  libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev \
  python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

步骤 3: 下载 OpenCV

使用 git 克隆 OpenCV 和 OpenCV Contrib 库(包含一些额外的模块和功能):

bash 复制代码
cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

步骤 4: 编译和安装 OpenCV

创建一个专门用于编译的文件夹:

bash 复制代码
mkdir ~/opencv/build
cd ~/opencv/build

运行 CMake 来配置 OpenCV 编译:

bash 复制代码
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..

如果没有错误,继续编译和安装:

bash 复制代码
make -j$(nproc)
sudo make install
sudo ldconfig

步骤 5: 验证安装

创建一个简单的 C++ 程序来验证 OpenCV 是否正确安装。例如,可以使用文本编辑器创建一个名为 test_opencv.cpp 的文件,内容如下:

bash 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    cv::Mat image;
    image = cv::imread("path/to/your/image.jpg", cv::IMREAD_COLOR);

    if (image.empty()) {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    cv::namedWindow("Display Image", cv::WINDOW_NORMAL);
    cv::imshow("Display Image", image);
    cv::waitKey(0);

    return 0;
}

用以下命令编译:

bash 复制代码
g++ test_opencv.cpp -o test_opencv `pkg-config --cflags --libs opencv4`

运行程序:

bash 复制代码
./test_opencv
相关推荐
草莓熊Lotso2 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑2 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
wdfk_prog9 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
智驱力人工智能10 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
盟接之桥10 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿10 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘10 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy64811 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满11 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠12 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法