unbuntu安装opencv方法及报错解决

安装OPENCV

1.下载opencv源码

直接选择下载源码zip压缩包
下载完成后放到unbuntu内并使用unzip命令解压(没有unzip的话安装一下:sudo apt install unzip就可以了)
切记如果是在虚拟内的环境请不要放到共享文件夹内解压以及进行后续安装,一定会失败的
在这里插入图片描述

2.配置opencv的cmake

cmake大家可以将他看做一种辅助的编译工具,有了它就可以将很多参数、文件都提前设定好,就不用在编译的时候一个一个输入参数、环境等。

直接在解压出来的文件内新建build文件
在这里插入图片描述
在build文件夹内打开终端,并输出命令cmake …↓(别忘带空格)(若没有cmake则要提前安装一下:sudo apt install cmake就可以了)
在这里插入图片描述

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

3.编译opencv代码

其实按照这个博主的方法安装就可以了(点此超链接)
编译前,还需要安装opencv的各个依赖项,所以我就多列出一些,以防别的版本也需要依赖:

我列的比较多,以防万一,如果还是编译不通过的话请再自行搜索其他的依赖库

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev   
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev   
sudo apt-get install libatlas-base-dev gfortran     
sudo apt-get install ffmpeg
sudo apt update
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

编译(如果没有make命令,请安装gcc与g++等:sudo apt install make):
在这里插入图片描述
或者需要更快的速度请使用sudo make j8,后面跟的j8使用8线程进行编译的意思,同理还可以设置j4等。。。

4.安装

全部完成编译后,即可进行安装
在这里插入图片描述

5.修改usr文件

我所使用的安装会生成文件路径:
/usr/local/include/opencv4

需要将opencv2文件夹链接到opencv4文件夹旁边,大家可以理解为现在的手不构长,够不到opencv2,所以需要执行以下命令给代码搭个桥,其实仅仅是为了方便
在这里插入图片描述

sudo ln -s opencv4/opencv2 opencv2

1.使用此方法可以解决报错:fatal error: opencv2/opencv.hpp

6.配置环境

–1.搞路径

接下来开始配置opencv路径(如果大家不是图形化界面没有gedit的话,可以使用sudo vi /etc/ld.so.conf只不过需要学一下“ i 插入命令” “Esc退出插入” “:wq 保存并退出” “:q 退出”)

sudo gedit /etc/ld.so.conf

将“include /usr/local/lib”的路径加入进去
在这里插入图片描述

–2.应用:

sudo ldconfig

–3.搞环境变量

sudo gedit /etc/bash.bashrc 

将以下代码的加入到最后:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
在这里插入图片描述

–4.应用

source /etc/bash.bashrc

7.编译测试代码

将此代码保存为opencv.c并编译

–1.代码:

#include <opencv2/opencv.hpp>
#include <stdio.h>
 
int main() {
    // 初始化摄像头
    cv::VideoCapture cap(0); // 0 代表系统默认摄像头
 
    if (!cap.isOpened()) {
        printf("摄像头打开失败\n");
        return -1;
    }
 
    // 设置捕获图像的分辨率
    cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
    cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
 
    // 读取帧
    cv::Mat frame;
    cap >> frame; // 或者使用 cap.read(frame);
 
    if (frame.empty()) {
        printf("捕获到空帧\n");
        return -1;
    }
 
    // 显示图像
    cv::imshow("摄像头", frame);
    cv::waitKey(10); // 等待10毫秒
 
    // 保存图像
    cv::imwrite("snapshot.jpg", frame);
 
    // 释放资源
    cap.release();
    cv::destroyAllWindows();
 
    return 0;
}

–2.编译

切记使用g++编译(支持C++),使用gcc会报错

g++ opencv.c -o open `pkg-config --cflags --libs opencv4`

在这里插入图片描述
1.使用gcc可以解决报错:rror: #error core.hpp header must be compiled as C++
2.使用pkg-config --cflags --libs opencv4命令可以解决报错:undefined reference to `cv::VideoCapture::VideoCapture(int, int)’

posted @   东风点点吹  阅读(55)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示