gpt4 book ai didi

c++ - C++ 中的点云库 (PCL) 等待/延迟/ sleep 函数

转载 作者:行者123 更新时间:2023-11-28 06:39:17 24 4
gpt4 key购买 nike

有什么方法可以让 PCL 库在可视化点云时等待一段时间?我有一系列点云,想在 PCLVisualizer 中为它们“制作动画”(通过更新单个点云或通过循环显示+删除新点云)。

我正在使用 C++ 并设置了 CloudViewer example .到目前为止,我只能通过与 OpenCV 交叉编译并使用其 waitKey(milliseconds) 函数来达到一定程度的延迟。我在 Ubuntu 14.04 LTS 上。使用 OpenCV 制作示例:

#include <opencv2/opencv.hpp>
using namespace cv;

但是 waitKey 仅在 viewerPsycho 函数的最后一个简单使用中起作用,它真正延迟了该函数中的计数器:

void viewerPsycho (pcl::visualization::PCLVisualizer& viewer)
{
static unsigned count = 0;
std::stringstream ss;
ss << "Once per viewer loop: " << count++;
viewer.removeShape ("text", 0);
viewer.addText (ss.str(), 200, 300, "text", 0);

// this will delay counter but shows nothing
waitKey(1000);
viewer.addPointCloud(point_cloud_ptr, "first");
waitKey(1000);
viewer.removePointCloud("first");
}

我的代码比原始示例更丰富,并且 addPointCloud 方法在不尝试延迟时可以正常工作。方法 removePointCloud 可能也有效,因为什么都不显示(忽略 waitKey?)。

waitKey 在 vi​​ewerOneOff 函数中似乎也被忽略了,当以同样的方式与 addPointCloud 和 removePointCloud 一起使用时(在函数末尾):

作品(仅展示):

viewer.addPointCloud(point_cloud_ptr, "first");

不起作用(什么都不显示):

viewer.addPointCloud(point_cloud_ptr, "first");
waitKey(5000);
viewer.removePointCloud("first");

我的 CMakeLists.txt:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(opencv_pcl)

find_package(PCL 1.2 REQUIRED)
find_package(OpenCV REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (opencv_pcl opencv_pcl.cpp)
target_link_libraries (opencv_pcl ${PCL_LIBRARIES} ${OpenCV_LIBS})

我将不胜感激。

最佳答案

您的代码中是否有 spin() 或 spinOnce() 方法?

viewer->spinOnce (100);

这会更新渲染器并处理所有交互 (http://docs.pointclouds.org/trunk/classpcl_1_1visualization_1_1_p_c_l_visualizer.html#a896556f91ba6b45b12a9543a2b397193)。

关于c++ - C++ 中的点云库 (PCL) 等待/延迟/ sleep 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26254578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com