OpenCV開發筆記(二):cvui交互界面

歡迎技術交流和幫助,提供IT相關服務,索要源碼請聯繫博主QQ: 21497936,若該文爲原創文章,未經允許不得轉載
原博主博客地址: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開發筆記(一):openCV介紹、編譯

OpenCV開發筆記(二):cvui交互界面

《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/

   

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章