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;
}
相关推荐
智驱力人工智能12 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
sali-tec14 小时前
C# 基于OpenCv的视觉工作流-章22-Harris角点
图像处理·人工智能·opencv·算法·计算机视觉
光羽隹衡15 小时前
计算机视觉——Opencv(图像拼接)
人工智能·opencv·计算机视觉
爱打代码的小林17 小时前
基于 MediaPipe 实现实时面部关键点检测
python·opencv·计算机视觉
深蓝电商API18 小时前
图片验证码识别:pytesseract+opencv入门
人工智能·opencv·计算机视觉·pytesseract
Sagittarius_A*20 小时前
特征检测:SIFT 与 SURF(尺度不变 / 加速稳健特征)【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·surf·sift
嵌入小生00720 小时前
标准IO---核心函数接口延续(嵌入式Linux)
c语言·vscode·vim·嵌入式·小白·标准io·函数接口
LYOBOYI12320 小时前
vscode界面美化
ide·vscode·编辑器
清山博客21 小时前
OpenCV 人脸识别和比对工具
前端·webpack·node.js
nLsUCWFJR1 天前
(Matlab)基于贝叶斯优化卷积双向长短期记忆网络(CNN-BiLSTM)回归预测
opencv