簡體   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