herrDeng網內搜尋

自訂搜尋

Ads

2021年12月21日 星期二

realsense2+openGL顯示點雲

//修改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;
}

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章