vscode基于cmake安装opencv库

一、安装相关依赖库

首先更新源

复制代码
sudo apt update

安装相关包

复制代码
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjasper

若是报错:无法定位到 libjasper软件包

则依次执行以下命令

复制代码
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

安装常用图像工具包

复制代码
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev

安装视频I/O包

复制代码
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

安装gtk2.0

复制代码
sudo apt install libgtk2.0-dev
sudo apt install pkg-config

优化函数包

复制代码
sudo apt-get install libatlas-base-dev gfortran
sudo apt install libcanberra-gtk-module

二、安装OpenCV

1、在OpenCV官网下载sources。

https://opencv.org/releases/

2、解压完成后,在当前目录下会生成opencv-x.x.x文件夹

3、新建一个编译目录build,并进入。

4、进行cmake-make编译

复制代码
cmake ..
make -j2

5、添加动态库

终端输入:sudo gedit /etc/ld.so.conf添加动态库

/usr/local/lib

终端输入:sudo ldconfig

修改 bash.bashrc 文件,打开文件后在文末加入以下两行代码

复制代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

6、OpenCV测试

终端进入:/home/sen/motan/postprocess/third_parties/opencv-4.8.0/samples

复制代码
cmake .
make
./opencv_example

三、配置VSCODE

cmakelists.txt输入:

复制代码
set(OpenCV_DIR /home/sen/motan/postprocess/third_parties/opencv-4.8.0/build)
find_package(OpenCV REQUIRED)#REQUIRED是find_package命令的一个选项,它指定了一个库是否是必需的
include_directories(${OpenCV_INCLUDE_DIRS})
message(${OpenCV_INCLUDE_DIRS})
message(${OpenCV_LIBS})
target_link_libraries(HelloWorld PUBLIC ${OpenCV_LIBS})

四、调用摄像头

复制代码
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;
 
int main()
{
    // 视频保存位置
    string outputVideoPath = "./test.avi";  
 
    // 打开摄像头
    VideoCapture capture0(0);  
 
    VideoWriter outputVideo;
    
    // 获取摄像机帧率
    int fps = capture0.get(CAP_PROP_FPS);  
 
    // 获取当前摄像头的视频信息
    cv::Size S = cv::Size((int)capture0.get(CAP_PROP_FRAME_WIDTH),
                          (int)capture0.get(CAP_PROP_FRAME_HEIGHT));
    // 打开视频路径,设置基本信息 open函数中你参数跟上面给出的VideoWriter函数是一样的
    outputVideo.open(outputVideoPath, cv::VideoWriter::fourcc('X', 'V', 'I', 'D'), fps, S, true);
 
    if (!outputVideo.isOpened()) {
        cout << "fail to open!" << endl;
        return -1;
    }
 
    // 图片帧
    cv::Mat frameImage;
    int count = 0;
 
    while(true){
        // 读取当前帧
        capture0 >> frameImage;
        if(frameImage.empty()) break;
        ++count;
        // 输出当前帧
        cv::imshow("output", frameImage);
        // 保存当前帧
        outputVideo << frameImage;
        if (char(waitKey(1)) == 'q') break;
    }
	return 0;
}
相关推荐
勾股导航2 小时前
OpenCV图像坐标系
人工智能·opencv·计算机视觉
格林威3 小时前
Baumer相机玻璃制品裂纹自动检测:提高透明材质检测精度的 6 个关键步骤,附 OpenCV+Halcon 实战代码!
人工智能·opencv·视觉检测·材质·工业相机·sdk开发·堡盟相机
暴走十八步5 小时前
PHP+vscode开启调试debug
开发语言·vscode·php
you-_ling6 小时前
IO编程相关知识
c语言·vscode
学嵌入式的小杨同学14 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
没有不重的名么1 天前
Multiple Object Tracking as ID Prediction
深度学习·opencv·计算机视觉·目标跟踪
愚者游世1 天前
Opencv知识点大纲
人工智能·opencv·计算机视觉
zhanglianzhao1 天前
Win 11 WSL 配置Claude code 并在VsCode中使用
ide·vscode·编辑器·claude·cladue code
Keying,,,,1 天前
VScode中终端闪退问题
ide·vscode·编辑器
热爱生活的五柒1 天前
如何在vscode中使用Claude code以及插件中配置setting.json无效的解决方法
ide·vscode·编辑器