[英]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.
這個輸出有什么不同之處可以阻止它被它捕獲嗎? 是不是要cout
或cerr
?
由於PCL的多線程性質,標准管道cout
和cerr
不會工作。 相反,您需要使用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.