繁体   English   中英

从pcl注册中抑制cout输出

[英]Suppress cout output from pcl registration

从这个问题: 重定向函数输出到/ dev / null我试图使用以下代码:

 std::ofstream catchPCLStream("/dev/null");
 std::streambuf *originalOutputBuffer = std::cout.rdbuf();
 std::cout.rdbuf(catchPCLStream.rdbuf());
 std::cerr.rdbuf(catchPCLStream.rdbuf());

 icp_.align(dataCloudTransformedByIcp_, icpInternalUpdatePose_);

 std::cout.rdbuf(originalOutputBuffer);
 std::cerr.rdbuf(originalOutputBuffer);

但是我仍然从注册库中获得了大量的输出:

[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.

这个输出有什么不同之处可以阻止它被它捕获吗? 是不是要coutcerr

由于PCL的多线程性质,标准管道coutcerr不会工作。 相反,您需要使用PCL提供的内置功能来关闭控制台打印。

使用命令:

pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS)

会把一切都关掉。 还有其他级别,可以在pcl::console命名空间页面上找到更多信息:

http://docs.pointclouds.org/trunk/a02895.html#a1c1202ab693383b98842cb4f72ae625c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM