キーボードコールバックイベントを使用してPCLビジュアライザウィンドウ内にスクリーンショットを保存しようとしています。キーボードコールバックイベントを使用してスクリーンショットを保存します。
しかし#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
void keyboardEventOccurred (const pcl::visualization::KeyboardEvent &event, void* viewer)
{
if (event.getKeySym() == "s" && event.keyDown())
{
viewer->saveScreenshot("Image.png");
}
}
int main (int argc, char** argv)
{
pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::io::loadPCDFile ("body.pcd", *body);
viewer.addPointCloud (body,"body");
viewer.registerKeyboardCallback (keyboardEventOccurred, &viewer);
viewer.spin();
return 0;
}
、データフィールドの間にいくつかの不一致があると、それは次のエラーを返すされています:、
[100%] Building CXX object CMakeFiles/pcl_visualizer.dir/pcl_visualizer.cpp.o
/home/ravi/pcl_visualizer/pcl_visualizer.cpp: In function ‘void keyboardEventOccurred(const pcl::visualization::KeyboardEvent&, void*)’:
/home/ravi/pcl_visualizer/pcl_visualizer.cpp:8:11: error: ‘void*’ is not a pointer-to-object type
viewer->saveScreenshot("Image.png");
^
make[2]: *** [CMakeFiles/pcl_visualizer.dir/pcl_visualizer.cpp.o] Error 1
任意の回避策をしてください以下のコードはありますか?
ああ...それは本当に重要でした。それは私の心を完全に滑らせました。素敵な説明をありがとうございました。それは魅力のように働く。 –