포인트 클라우드를 시각화 할 때 잠시 PCL 라이브러리를 기다릴 수있는 방법이 있습니까? 일련의 점 구름을 가지고 있으며 PCLVisualizer에서 단일 점 구름을 업데이트하거나 루프에 새로운 점 구름을 제거하여 + 표시하여 "애니메이션"하고 싶습니다.C++의 포인트 클라우드 라이브러리 (PCL) 대기/지연/슬립 기능
저는 C++을 사용하고 CloudViewer example을 설정했습니다. 지금까지는 OpenCV로 크로스 컴파일하고 waitKey (밀리 초) 함수를 사용하여 어느정도 지연 될 수있었습니다. 우분투 14.04 LTS입니다. OpenCV의로 만든 예를 들어 작업 :
이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");
}
내 코드는 다음과 같습니다
#include <opencv2/opencv.hpp>
using namespace cv;
는 그러나 waitKey는 정말 그 기능에 카운터를 지연시키는 viewerPsycho 함수의 맨 끝에서 간단한 사용 내에서 작동 원래 예제보다 더 풍부하고 지연을 시도하지 않을 때 addPointCloud 메소드가 제대로 작동합니다. 아무 것도 표시되지 않기 때문에 removePointCloud 메소드가 작동합니다 (waitKey가 무시됩니까?).
작품 (전용 방송) :
viewer.addPointCloud(point_cloud_ptr, "first");
waitKey는이 같은 addPointCloud 및 removePointCloud과 같은 방법을 사용하는 경우 (함수의 끝에서)를 viewerOneOff 기능을 무시하는 것 (아무것도 표시되지 않습니다) 작동하지 않습니다
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})
어떤 도움을 주셔서 감사합니다.
네 말이 맞아,이게 내가 찾고 있던거야. 내가 CloudViewer 클래스를 사용하려고했지만 그것은 회전/지연 메서드를 가지고있는 것 같아 그래서 그것은 조금 이상한 행동을 waitKey. 하나는 실제 spin/spinOnce를위한 "큰"PCLVisualizer 클래스로 전환해야합니다. – Kozuch