OpenCV开发笔记(二):cvui交互界面
若该文为原创文章,未经允许不得转载
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100110016
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中..
OpenCV开发专栏(点击传送门)
上一篇:《OpenCV开发笔记(一):OpenCV介绍、编译》
下一篇:《OpenCV开发笔记(三):OpenCV图像的概念和基本操作》
前言
OpenCV可用于做界面开发,cvui基于OpenCV的ui界面开发库,跨平台。
CVUI
概述
cvui是一个(非常)简单的UI lib,构建在OpenCV绘图基元之上。其他UI库(例如imgui)需要图形后端(例如OpenGL)才能工作,因此如果要在OpenCV应用程序中使用imgui,则必须使其启用OpenGL。
这不是与cvui的情况下,它使用只有OpenCV的图元来完成所有的渲染(无OpenGL或需要QT)。
特征
- 轻巧,易于使用的用户界面;
- 仅限标头,没有外部依赖(OpenCV除外);
- 仅基于OpenCV绘图原语(不需要OpenGL或Qt);
- 友好和类似C的API(没有类/对象等);
- 轻松渲染组件而无需担心其位置(使用行/列);
- 简单(但功能强大)的鼠标API;
- 适当数量的UI组件(总共11个);
- 提供C ++和Python(纯实现,无绑定)。
CVUI下载
官方地址:cvui - (very) simple UI lib built on top of OpenCV drawing primitives
CVUI编译
编译并不是必须的,cvui只需要包含头文件,编译是为了其Demo。
步骤一:解压到编译文件夹
步骤二:CMake配置
步骤三:配置错误“OpenCVConfig.cmake”、“opencv-config.cmake”
Cvui是基于OpenCV,导入这两个文件路径。
继续配置,配置完成。
步骤四:命令行编译
编译安装成功。
模块化
测试代码
void OpenCVManager::testCvuiRunNormal()
{cv::String windowName = "testCvuiRunNormal";cvui::init(windowName);// 高度 宽度cv::Mat frame = cv::Mat(300, 400, CV_8UC3);int count = 0;while(true){frame = cv::Scalar(100, 100, 100);if(cvui::button(frame, 100, 100, "testButton")){count++;}cvui::printf(frame, 100, 200, 1.0, 0xFF0000, "count = %d", count);cvui::update();cv::imshow(windowName, frame);// Check if ESC key was pressedif (cv::waitKey(20) == 27){break;}}
}
测试效果
示例Demo
button-shortcut.exe
canny.exe
complex-layout.exe
hello-world.exe
image-button.exe
interaction-area.exe
main-app.exe
mouse.exe
mouse-complex.exe
mouse-complex-buttons.exe
multiple-files.exe
multiple-windows.exe
multiple-windows-complex.exe
multiple-windows-complex-dynamic.exe
multiple-windows-complex-mouse.exe
nested-rows-columns.exe
on-image.exe
row-column.exe
sparkline.exe
trackbar.exe
trackbar-complex.exe
trackbar-sparkline.exe
ui-enhanced-canny.exe
ui-enhanced-window-component.exe
示例Demo+编译好的lib集合包下载地址
CSDN:cvui_opencv示例Demo_cvuiLib_opencvLib_Qt5.9.3mingw.rar-C++文档类资源-CSDN下载
入坑
入坑一:找不到cvui等函数定义
解决方法:
工程模板:对应版本号v1.1.0
对应版本号v1.1.0
上一篇:《OpenCV开发笔记(一):OpenCV介绍、编译》
下一篇:《OpenCV开发笔记(三):OpenCV图像的概念和基本操作》
原博主博客地址:长沙红胖子Qt C++ Linux Arm_长沙红胖子_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:OpenCV开发笔记(二):cvui交互界面_长沙红胖子Qt C++ Linux Arm-CSDN博客_opencv交互界面
OpenCV开发笔记(二):cvui交互界面相关推荐
- OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体
本博客是转载的 本文章源博客地址:https://blog.csdn.net/qq21497936/article/details/109194717 各位读者,知识无穷而人力有穷,要么改需求,要么找 ...
- OpenCV开发笔记(一):OpenCV介绍、编译
若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151 各位读者,知识无穷而人力有穷, ...
- OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109096211 各位读者,知识无穷而人力有穷 ...
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821 各位读者,知识无穷而人力有穷 ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- iOS工程开发笔记二
iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...
- OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)
若该文为原创文章,转载请注明出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/107837715 各位读者,知识无穷而人力有穷,要 ...
- 微信小程序开发笔记二(WXSS和CSS样式美化)
微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...
最新文章
- java enter_Java UI.enter方法代码示例
- RHEL 5服务篇—部署DNS域名解析服务(一)BIND软件
- 2016年CCPC/ICPC比赛总结
- 在php里让字体划过变色,鼠标划过字体时如何用css来实现字体变色?(代码实测)...
- HTML5 Audio标签API整理(一)
- 【UNITY3D 游戏开发之三】NGUI HUDTEXT 的练习源码及资源
- RGB数据剪切后保存为JPG格式文件的代码(使用jpeglib)
- VB.NET利用WMI获取操作系统所在硬盘序列号
- android 点击按钮打开浏览器网页
- C++ 第三课:常量转义字符
- nyist——ACM新生牛刀小试 Round#1题解
- 电脑的任务栏只显示一条杠,没有图标怎么解决,看这里!!!
- 嵌入式linux 系统支持usb wifi BL-R8723BT1
- 噪声dba是什么单位_声音的大小dB,到底是什么单位?
- 新浪博客(sina blog)批量删除代码
- Centos7 配置网卡链路聚合(转载)
- 用python输入概率分布,计算信源熵/信息熵
- android 系统要求,Android SDK系统要求
- Multi2Sim 5.0安装
- MATLAB机器人仿真笔记1——环境搭建
热门文章
- c语言课程设计报告书万年历,计算机c语言课程设计万年历报告书
- erp服务器安装虚拟打印机,如何在云服务器上使用打印机
- 第一份工作,入职前的感想和疑惑
- winrar 3.8注册码
- java+socket 简易聊天工具
- abstract方法必须在abstract类中 这句话是对的还是错的?
- CleanMyMac X2021中文官方永久免费全新系统清理管家软件
- 写的java代码 怎么看_【图片】自己写的Java代码,但是自己看不懂了【西安电子科技大学吧】_百度贴吧...
- 有了这些框架的构成,才是真正的数字化工厂
- 华为云 · 云桌面 Workspace(介绍)