OpenCV开发笔记(二):cvui交互界面

若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100110016

目录

前言

CVUI

概述

特征

CVUI下载

CVUI编译

步骤一:解压到编译文件夹

步骤二:CMake配置

步骤三:配置错误“OpenCVConfig.cmake”、“opencv-config.cmake”

步骤四:命令行编译

模块化

测试代码

测试效果

示例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集合包下载地址

入坑

入坑一:找不到cvui等函数定义

工程模板:对应版本号v1.1.0


OpenCV开发专栏

OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境

OpenCV开发笔记(一):OpenCV介绍、编译

OpenCV开发笔记(二):cvui交互界面

OpenCV开发笔记(三):OpenCV图像的概念和基本操作

OpenCV开发笔记(四):OpenCV图片和视频数据的读取与存储

OpenCV开发笔记(五):OpenCV读取与操作摄像头

OpenCV开发笔记(六):OpenCV基础数据结构、颜色转换函数和颜色空间

OpenCV开发笔记(七):OpenCV基础图形绘制

OpenCV开发笔记(八):OpenCV常用操作之计时、缩放、旋转、镜像

OpenCV开发笔记(九):OpenCV区域图像(ROI)和整体、局部图像混合

OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合

持续补充中…

 

    OpenCV开发笔记(二):cvui交互界面

前言

       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下载

       官方地址:https://dovyski.github.io/cvui/

   

 

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 pressed
        if (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:https://download.csdn.net/download/qq21497936/11612349

 

入坑

入坑一:找不到cvui等函数定义

        

解决方法:

        

 

工程模板:对应版本号v1.1.0

       对应版本号v1.1.0


原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100110016

发布了227 篇原创文章 · 获赞 237 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/qq21497936/article/details/100110016