各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究

红胖子(红模仿)的博文大全:开发技术集合(包含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下载

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

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

 

CVUI编译

       编译并不是必须的,cvui只需要包含头文件,编译是为了其Demo。

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

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

步骤二:CMake配置

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

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

       Cvui是基于OpenCV,导入这两个文件路径。

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

       继续配置,配置完成。

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_05

步骤四:命令行编译

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

OpenCV开发笔记(二):cvui交互界面_编译_07

       编译安装成功。

 

模块化

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

 

测试代码
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;
        }
    }
}

 

测试效果

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

 

示例Demo

button-shortcut.exe

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

canny.exe

OpenCV开发笔记(二):cvui交互界面_编译_11

complex-layout.exe

OpenCV开发笔记(二):cvui交互界面_编译_12

hello-world.exe

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

image-button.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_14

interaction-area.exe

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

main-app.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_16

mouse.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_17

mouse-complex.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_18

mouse-complex-buttons.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_19

multiple-files.exe

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

multiple-windows.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_21

multiple-windows-complex.exe

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

multiple-windows-complex-dynamic.exe

OpenCV开发笔记(二):cvui交互界面_编译_23

multiple-windows-complex-mouse.exe

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

nested-rows-columns.exe

OpenCV开发笔记(二):cvui交互界面_cvui自带示例_25

on-image.exe

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

row-column.exe

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

sparkline.exe

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

trackbar.exe

OpenCV开发笔记(二):cvui交互界面_编译_29

trackbar-complex.exe

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

trackbar-sparkline.exe

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

ui-enhanced-canny.exe

OpenCV开发笔记(二):cvui交互界面_编译_32

ui-enhanced-window-component.exe

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

 

示例Demo+编译好的lib集合包下载地址

       CSDN:javascript:void(0)

 

入坑

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

        OpenCV开发笔记(二):cvui交互界面_编译_34

解决方法:

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

 

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

       对应版本号v1.1.0

 

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

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