//修改realsense2 rs-pointcloud.cpp範例,加上按esc可存ply 3D影像
#include <librealsense2/rs.hpp> // Include RealSense Cross Platform API
#include "example.hpp" // Include short list of convenience functions for rendering
using namespace std;
using namespace rs2;
// Helper functions
void register_glfw_callbacks(window& app, glfw_state& app_state);
int main()
try
{
// Create a simple OpenGL window for rendering:
window app(1280, 720, "RealSense Pointcloud Example");
//老師加上key_listener
window_key_listener key_listener(app);
// Construct an object to manage view state
glfw_state app_state;
// register callbacks to allow manipulation of the pointcloud
register_glfw_callbacks(app, app_state);
// Declare pointcloud object, for calculating pointclouds and texture mappings
pointcloud pc;
// We want the points object to be persistent so we can display the last cloud when a frame drops
points points;
// Declare RealSense pipeline, encapsulating the actual device and sensors
pipeline pipe;
// Start streaming with default recommended configuration
pipe.start();
while (app) // Application still alive?
{
// Wait for the next set of frames from the camera
frameset frames = pipe.wait_for_frames();
frame color = frames.get_color_frame();
// Tell pointcloud object to map to this color frame
pc.map_to(color);
frame depth = frames.get_depth_frame();
// Generate the pointcloud and texture mappings
points = pc.calculate(depth);
// Upload the color frame to OpenGL
app_state.tex.upload(color);
// Draw the pointcloud
draw_pointcloud(app.width(), app.height(), app_state, points);
//如果按esc就存檔
if (key_listener.get_key()==27)
points.export_to_ply("point_cloud.ply", color);
}
return 0;
}
catch (rs2::error & e){
cerr << "RealSense error calling "
<< e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << endl;
return 1;
}
catch (exception & e){
cerr << e.what() << endl;
return 1;
}
herrDeng網內搜尋
自訂搜尋
Ads
2021年12月21日 星期二
realsense2+openGL顯示點雲
訂閱:
張貼留言 (Atom)
熱門文章
-
教育部為提昇全民資安素養與電腦防護能力,本部於101年9月5日至11月5日舉辦「全民資安素養自我評量」活動,請在活動期間內踴躍上網檢測資訊安全素養認知程度,並有機會參與抽獎,詳情請參閱活動網站(網址: https://isafe.moe.edu.tw/event
-
你會用C的算子sizeof?
-
C 的continue & break [影片]介紹C++程式for迴圈中加上continue與break的差異之簡例 Java迴圈中的的continue & break
-
C++ DP動態規劃解Leetcode 937 Maximum Number of Points with Cost 有些標示medium要比標示hard的問題還要難,Leetcode 1937. Maximum Number of Points with Cost,DP動態規...
-
EULER特徵數定理與UnionFind解Leetcode959 Regions Cut By Slashes EULER特徵數定理:平面連通圖有V-E+F --------------
-
C++ stringstream解分數加減Leetcode 592 Fraction Addition and Subtraction 程式設計分數加減很難嗎?計算容易,但處理字串費事,用stringstream就簡單了
-
C++Floyd Warshall解Leetcode 1334 Find the City With the Smallest Number of Neighbors at a Threshold 由於每對 (i, j) 都有許多最短路徑需要計算,採用 Floyd-Warsh...
-
RSA 演算 Euler 定理搞定#LeetCode 372 Super Pow--C,C++,Python實作。玩過數論、RSA演算的,解這個問題剛好,C++解答打敗94%,還沒有特別優化。
沒有留言:
張貼留言