简单的opencv GUI库
来源:互联网 发布:云游seo 编辑:程序博客网 时间:2024/06/07 13:27
对图像进行处理时通常需要调整函数的参数,特别是像边缘检测或者是图像亮度调节等操作,常常需要经过多次调节才能得到满意的结果。而每次要重新设置参数都需要重新更改程序中的代码,opencv也有自带的gui,不过一直觉得很不好用,今天发现了一个非常简单的gui库:cvui,只需要包含一个头文件,并且是跨平台的,不需要附属其他文件,非常方便。
下载地址:cvui
界面先睹为快:
下面以canny边缘检测为例,动态调节高低阈值的大小,主要包括一个checkbox和两个trackbar,代码非常简洁,很适合简单的应用。
直接贴代码:
#include <opencv2/opencv.hpp>#include "cvui.h"#define WINDOW_NAME "CVUI"using namespace cv;using namespace std;int main(){ Mat src = imread("lena.jpg"); Mat frame = src.clone(); int low_threshold = 50, hight_threshold = 100; bool use_canny = false; // Init a OpenCV window and tell cvui to use it. namedWindow(WINDOW_NAME); cvui::init(WINDOW_NAME); while (true) { if (use_canny) { cvtColor(src, frame, CV_BGR2GRAY); Canny(frame, frame, low_threshold, hight_threshold, 3); } else { src.copyTo(frame); } // Render the settings window to house the UI cvui::window(frame, 10, 50, 180, 180, "Settings"); // Checkbox to enable/disable the use of Canny edge cvui::checkbox(frame, 15, 80, "use canny edge", &use_canny); // Two trackbars to control the low and high // threshold values for the Canny edge algorithm. cvui::trackbar(frame, 15, 110, 165, &low_threshold, 5, 150); cvui::trackbar(frame, 15, 180, 165, &hight_threshold, 80, 300); // Update cvui internal stuff cvui::update(); imshow(WINDOW_NAME, frame); if (waitKey(30) == 27) { break; } } return 0;}
需要注意两点:
1.使用cvui需要在显示任何控件之前调用cvui::init();
2.在所有控件都显示后需要调用cvui::update();
just enjoy the cvui!
阅读全文
0 0
- 简单的opencv GUI库
- opencv的基本GUI指令
- Qt 5.3 下OpenCV 2.4.11 开发(3)简单的GUI项目
- learn opencv-cvui:一个构建在OpenCV绘图基元之上的GUI库
- 一个简单的GUI例子
- 简单的python GUI例子
- JAVA的GUI简单入门
- Python 实现简单的GUI
- 最简单的java GUI
- Python的GUI简单介绍
- GUI画简单的分形树
- Qt调用OpenCV库编写GUI程序
- 《调用opencv库的简单makefile示例》
- OpenCV简单的介绍
- opencv简单的数据类型
- opencv 简单的例子
- opencv:简单的数据结构
- opencv:简单的HighGui
- 继承
- Spring的简介与配置
- Spring(2.3.22 IOC )
- CF AIM Tech Round 4上紫记
- 关于for循环的优化问题
- 简单的opencv GUI库
- ViewStub Gone的区别
- spark学习笔记:flatMap()(API操作报错)
- 第2章 空间配接器(allocator)
- 【PAT】【Advanced Level】1076. Forwards on Weibo (30)
- (CodeForces
- 阿里云CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)
- C语言学习笔记——关于 .obj 文件的理解
- 年中总结--一切才只是刚刚开始