网站首页 > 编程文章 正文
使用opencv一般建议使用有contrib扩展功能的版本,不过contrib需要编译,花的时候会长一些,这里主要讲安装了opencv之后,怎么在ubuntu使用vscode来调用opencv
先安装opencv,打开终端输入以下命令,回车
sudo apt install libopencv-dev
成功之后检查
pkg-config --cflags opencv4
结果【这个就是opencv目录】:-I/usr/include/opencv4
pkg-config --modversion opencv4
结果【看来今日此时默认安装的版本是4.6】:4.6.0
pkg-config --libs opencv4
结果【 OpenCV 的库文件】:
-lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
再确定下opencv库文件的所在路径
sudo find / -name "*opencv_core*"
可见路径是:/usr/lib/x86_64-linux-gnu/
好的,opencv所有的信息都有了,接下来是配置vscode
新建一个文件夹后,里面新建一个名叫.vscode的文件夹,再增加3个json文件
c_cpp_properties.json
/** c_cpp_properties.json **/
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/opencv4/", //最后这个斜杠应该是要的
"/usr/include/opencv4/opencv2/"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
// "name": "g++.exe - 生成和调试活动文件",
"name": "(gdb) Launch",
"type": "cppdbg",
"preLaunchTask": "build", // 这个应该是必须的
"request": "launch", // launch:启动,attach:附加
"program": "${fileDirname}/${fileBasenameNoExtension}", // 需要调试的程序
"args": [], // 调试时传递给程序的参数
"stopAtEntry": false, // 调试时是否停在程序入口:{true:是,false:否}
"cwd": "${workspaceFolder}", // 工作目录
"environment": [], // 额外的环境变量
"externalConsole": false, // true:输出到外部终端;false:只输出到软件终端(有显示不全的可能)
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
// "preLaunchTask": "C/C++: g++ build active file", // 预编译任务名称,和tasks.json中的label必须相同
"miDebuggerPath": "/usr/bin/gdb" // 调试gdb路径
}
]
}
tasks.json
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g","-std=c++11",
"${file}", // 单个cpp文件
// "${workspaceFolder}/Demo/*.cpp", // 多个cpp文件
// "${workspaceFolder}/src/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}", // 要调试的程序,必须与launch.json文件中的"program"相同
"-I", "${workspaceFolder}/include", // 项目include文件
"-I", "/usr/include/opencv4/", // opencv安装的include文件路径
"-I", "/usr/include/opencv4/opencv2/",
"-L", "/usr/lib/x86_64-linux-gnu/", //opencv安装的lib文件路径
"-l", "opencv_stitching",
"-l", "opencv_alphamat",
"-l", "opencv_aruco",
"-l", "opencv_barcode",
"-l", "opencv_bgsegm",
"-l", "opencv_bioinspired",
"-l", "opencv_ccalib",
"-l", "opencv_cvv",
"-l", "opencv_dnn_objdetect",
"-l", "opencv_dnn_superres",
"-l", "opencv_dpm",
"-l", "opencv_face",
"-l", "opencv_freetype",
"-l", "opencv_fuzzy",
"-l", "opencv_hdf",
"-l", "opencv_hfs",
"-l", "opencv_img_hash",
"-l", "opencv_intensity_transform",
"-l", "opencv_line_descriptor",
"-l", "opencv_mcc",
"-l", "opencv_quality",
"-l", "opencv_rapid",
"-l", "opencv_reg",
"-l", "opencv_rgbd",
"-l", "opencv_saliency",
"-l", "opencv_shape",
"-l", "opencv_stereo",
"-l", "opencv_structured_light",
"-l", "opencv_phase_unwrapping",
"-l", "opencv_superres",
"-l", "opencv_optflow",
"-l", "opencv_surface_matching",
"-l", "opencv_tracking",
"-l", "opencv_highgui",
"-l", "opencv_datasets",
"-l", "opencv_text",
"-l", "opencv_plot",
"-l", "opencv_ml",
"-l", "opencv_videostab",
"-l", "opencv_videoio",
"-l", "opencv_viz",
"-l", "opencv_wechat_qrcode",
"-l", "opencv_ximgproc",
"-l", "opencv_video",
"-l", "opencv_xobjdetect",
"-l", "opencv_objdetect",
"-l", "opencv_calib3d",
"-l", "opencv_imgcodecs",
"-l", "opencv_features2d",
"-l", "opencv_dnn",
"-l", "opencv_flann",
"-l", "opencv_xphoto",
"-l", "opencv_photo",
"-l", "opencv_imgproc",
"-l", "opencv_core"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "test",
"isDefault": true
},
"detail": "调试器生成任务"
}
],
"version": "2.0.0"
}
配置好这3个文件之后,就可以添加一个cpp文件来运行测试了
3.cpp,注意这里的图片名,我只写了个11.jpg,那么请把11.jpg放在cpp同一目录,或者自己指定一个绝对路径也可以
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片(游戏原画)
Mat img=imread("11.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画",img);
// 等待6000 ms后窗口自动关闭
waitKey(0);
}
或者设置断点,调试
如果安装了CodeRunner,也要设置下
以下是我的修改,可参考下
"cpp": "cd $dir && g++ $fileName -I /usr/include/opencv4/ -I /usr/include/opencv4/opencv2/ -L /usr/lib/x86_64-linux-gnu/ -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -fexec-charset=UTF-8 -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
设置完成之后,就可以直接用run code运行代码了
猜你喜欢
- 2024-09-09 linux中docker配置nginx+php+mysql+thinkphp完整案例
- 2024-09-09 心中无码便是高清,马赛克算法 PULSE详解
- 2024-09-09 欧拉系统openEuler 成功运行.NET8(完整版)
- 2024-09-09 手把手教你搭建国产嵌入式模拟器SkyEye开发环境
- 2024-09-09 3分钟阅读 | webp画质感人,尺寸嫉妒,前后端程序员都来看
- 2024-09-09 HandBrake 1.7.0更新,AMD/Nvidia GPU AV1视频转码效率大大提升
- 2024-09-09 WebAssembly 在音视频领域内的一些实践
- 2024-09-09 C语言基础及指针①(c语言指针基础知识)
- 2024-09-09 php函数imagettftext使用注意事项
- 2024-09-09 PHP 图像处理函数(php处理的图片格式是什么)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)