PCL 使用 pcl::visualization::PCLVisualizer 類裡面的鍵盤事件方法 如何使用及需要注意的事項
如何使用 pcl 庫裡面的視覺化模組的鍵盤事件
#include <pcl/visualization/pcl_visualizer.h>
bool iteration_flag = false;
void keyboardEventOccurred(const pcl::visualization::KeyboardEvent& event, void* nothing){
if(event.getKeySym() == "space" && event.keyDown()){
iteration_flag = true;
}
}
int main(){
pcl::visualization ::PCLVisualizer *p;
p = new pcl::visualization::PCLVisualizer("PCL Windows");
p->registerKeyboardCallback(&keyboardEventOccurred, (void*)NULL);
while(iteration_flag != true){
p->spinOnce();
}
return 0;
}
需要注意的事項:
第一個:就是,你定義的這個p
指標,必須要給它賦值例項化物件:p = new pcl::visualization::PCLVisualizer("PCL Windows");
第二個:就是這個自定義的鍵盤事件函數了:keyboardEventOccurred()
函式。想要讓這個函式可以使用,我們不需要再程式中迴圈的呼叫p->spinOnce()
方法,程式才能響應我們的這個鍵盤事件函式。
第三個:一個也非常重要:其實上面的程式碼中,這段程式是不安全的:
while(iteration_flag != true){
p->spinOnce();
}
因為如何程式在這個地方一直的執行,如果你視覺化的是一個點比較多的點雲,那麼一段時間後(大約不到5秒鐘),你的電腦就會卡得要死!!!!
安全的程式應該是下面這個樣子的:(參考網站:這裡)
我們新增延時函式,不讓它一直執行spinOnce()
方法。
#include <boost/thread/thread.hpp>
while (iteration_flag != true)
{
p->spinOnce (100);
boost::this_thread::sleep (boost::posix_time::microseconds (100000));
}
其中spinOnce()
函式裡面的100
指的是:How long (in ms) should the visualization loop be allowed to run.
其中的boost::this_thread::sleep (boost::posix_time::microseconds (100000));
是延時100000微秒,也就是0.1秒。
相關推薦
PCL 使用 pcl::visualization::PCLVisualizer 類裡面的鍵盤事件方法 如何使用及需要注意的事項
如何使用 pcl 庫裡面的視覺化模組的鍵盤事件 #include <pcl/visualization/pcl_visualizer.h> bool iteration_flag = false; void keyboardEv
html5標簽div可綁定鍵盤事件方法
標簽 select lec input 神器 selector tabindex 鍵盤 ner 我們知道鍵盤事件一般用在input這些可以獲取焦點的元素上,但是作為div,盡管官方上說可以綁定鍵盤事件,但是我寫了以後發現不生效,於是找答案。 果然,找到了一個神器:tabin
java抽象類。抽象類裡面的抽象方法必須被子類全部複寫
抽象類:包含抽象方法的類稱為抽象類。 抽象方法:只宣告而未實現的方法稱為抽象方法。必須使用abstract關鍵字宣告。 *抽象類和抽象方法都必須使用abstract關鍵字宣告。 *抽象方法只宣告,不需要定義。 *抽象類不能宣告物件,必須被繼承。 *抽象類中的抽象方法必須被子類全部覆寫才能夠使用。 抽象類:
Python中類的屬性、方法及內置方法
包含 obj urn 資源 tin 初始化 方式 Coding 特性 1.類的屬性 成員變量 對象的創建 創建對象的過程稱之為實例化,當一個對象被創建後,包含三個方面的特性對象聚丙屬性和方法, 句柄用於區分不同的對象, 對象的屬性和方法,與類中的成員變量和成員函數對應, o
java this 子類調父類,父類再調用子類已覆蓋的方法及屬性(又一次理解)
views args pop word per ews nds 如果 ext 之前一直以為 this關鍵字 是指調用者對象,但是這次才真正理解,this代表當前對象,但是指向調用者對象,其實就是多態的用法,如下所示:B 繼承了 A,在B 中調用A類的方法,在A 中用this
React學習之旅----事件方法及改變this指向
import React, { Component } from 'react'; import '../assets/css/index.css' // react繫結屬性注意點 // class要換成className // for 要換成htmlFor // style class Home
java this 子類調父類,父類再呼叫子類已覆蓋的方法及屬性(又一次理解)
之前一直以為 this關鍵字 是指呼叫者物件,但是這次才真正理解,this代表當前物件,但是指向呼叫者物件,其實就是多型的用法,如下所示:B 繼承了 A,在B 中呼叫A類的方法,在A 中用this 訪問成員變數和方法,此時,如果用this訪問成員變數,如下,this.s ,
js 中事件的event的注意事項,如何在普通函式中取到event事件物件呢?
Point1 應用場景不同時應當注意什麼? onlick = function(e){ e可以直接取到event物件。即window.event; } function another(e){ var e
android 後臺監聽按鍵事件方法及demo
demo下載地址 =============== 1.概述:最方便的方式還是修改系統原始碼按鍵事件,將鍵值發廣播出來給應用監聽,其次是用設定裡面的輔助功能的AccessibilityService也可監聽按鍵事件,但是前提是需要在設定中開啟此輔助功能的開關才行,前面的
關於學習Kotlin子類繼承父類,成員屬性Override時候需要注意的問題
最近在學習Kotlin這門語言,作為一個java程式設計師兼android程式設計師,Kotlin又在17年強勢被google推崇為android官方開發語言之一,這就意味著,過去基於java語言的android開發人員,很有必要去掌握Kotlin這門語言,當然我這裡不去談論
PCL中PCLVisualizer類與CloudViewer類簡介與區別
PCLVisualizer視覺化類是PCL中功能最全的視覺化類,與CloudViewer視覺化類相比,PCLVisualizer使用起來更為複雜,但該類具有更全面的功能,如顯示法線、繪製多種形狀和多個視口。 我們先從官方文件及原始碼看起: http://docs.pointclou
事件類型--鍵盤與文本事件
ascii碼 undefine ima 文本 eof shift .com 攔截 使用 3個鍵盤事件,如下: keydown:當用戶按下鍵盤上的任意鍵時觸發,而且如果按住不放的話,會重復觸發此事件。 keypress:當用戶按下鍵盤上的字符鍵時觸發,而且如果按住不放的話,
PCL——Visualzer視覺化類
目錄 程式碼 1. 視覺化單個點雲 建立視窗物件並給標題欄定義名稱"3D Viewer" 【注】定義"boost :: shared_ptr"智慧共享指標,保證該指標在整個程式全域性使用。 boost::shared_ptr<pcl
搬運~~js 裡面的鍵盤事件對應的鍵碼
js 裡面的鍵盤事件經常用到,所以收集了鍵盤事件對應的鍵碼來分享下: keyCode 8 = BackSpace BackSpace keyCode 9 = Tab Tab keyCode 12 = Clear keyCode 13 = Enter keyCode 16 = Shift_L keyC
js 裡面的鍵盤事件對應的鍵碼
js 裡面的鍵盤事件經常用到,所以收集了鍵盤事件對應的鍵碼來分享下: keyCode 8 = BackSpace BackSpacekeyCode 9 = Tab Ta
讓處於contentEditable=true的層裡面的圖片響應鍵盤事件。
<SCRIPT LANGUAGE=javascript FOR=document EVENT=onkeyup>ku()</SCRIPT><div id="eee" ><img src="http://www.google.com/im
鍵盤事件
put ret tor author ava val content 代碼分析 inner !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><
jQuery基礎(鼠標事件,表單事件,鍵盤事件,自定義事件 篇)
1.7 傳遞 ret 文本 leave 右鍵 page content gree 1.jQuery鼠標事件之click與dbclick事件 方法一:$ele.click()(不帶參數) <div id="test">點擊觸發<div> $(
總結Selenium WebDriver中一些鼠標和鍵盤事件的使用
ict 效果 control window 只需要 html 執行 text keyevent 在使用 Selenium WebDriver 做自動化測試的時候,會經常模擬鼠標和鍵盤的一些行為。比如使用鼠標單擊、雙擊、右擊、拖拽等動作;或者鍵盤輸入、快捷鍵使用、組合鍵使用
pyHook監聽用戶鼠標、鍵盤事件
word 日期 version 消息 彈出 lin .py cti ros 一、代碼部分:獲取用戶輸入信息,並與截圖一起保存到XX目錄下 # -*- coding: utf-8 -*- # import pythoncom import pyHook i