codecamp

启动Viz

目标

在本教程中,您将学习如何

  • 打开一个可视化窗口。
  • 以其名称访问窗口。
  • 启动事件循环。
  • 在特定时间内启动事件循环。

Code

你可以从这里下载代码。


#include <opencv2/viz.hpp>
#include <iostream>
using namespace cv;
using namespace std;
static void help()
{
    cout
    << "--------------------------------------------------------------------------" << endl
    << "This program shows how to launch a 3D visualization window. You can stop event loop to continue executing. "
    << "You can access the same window via its name. You can run event loop for a given period of time. " << endl
    << "Usage:"                                                                     << endl
    << "./launching_viz"                                                            << endl
    << endl;
}
int main()
{
    help();
    viz::Viz3d myWindow("Viz Demo");
    myWindow.spin();
    cout << "First event loop is over" << endl;
    viz::Viz3d sameWindow = viz::getWindowByName("Viz Demo");
    sameWindow.spin();
    cout << "Second event loop is over" << endl;
    sameWindow.spinOnce(1, true);
    while(!sameWindow.wasStopped())
    {
        sameWindow.spinOnce(1, true);
    }
    cout << "Last event loop is over" << endl;
    return 0;
}

说明

这是程序的一般结构:

  • 创建一个窗口。
viz :: Viz3d myWindow(“Viz Demo”);
  • 此事件循环将运行,直到用户通过按E、E、Q、Q终止它。
myWindow.spin();
  • 通过其名称访问相同的窗口。由于窗口是隐式共享的,所以windowWindow与myWindow完全相同。如果名称不存在,将创建一个新窗口。
viz :: Viz3d sameWindow = viz :: get(“Viz Demo”);

启动受控事件循环。一旦启动,wasStopped设置为false。在while循环中,在每次迭代中,调用spinOnce来防止事件循环完全停止。在while循环中,用户可以执行其他语句,包括与窗口交互的语句。

sameWindow.spinOnce(1,true);
while(!sameWindow.wasStopped())
{
    sameWindow.spinOnce(1,true);
}

结果

这是程序的结果。

启动Viz

使用cv :: cuda :: GpuMat推力(thrust)
Pose of a widget
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenCV教程

OpenCV高级GUI和媒体(highgui模块)

OpenCV图像输入和输出(imgcodecs模块)

对象检测(objdetect模块)

计算摄影(照片模块)

图像拼接(拼接模块)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }