繁体   English   中英

如何抑制 python 中的 ITK 警告消息

[英]How to suppress ITK warning messages in python

每当我使用 python medpy.io 加载 function 加载.img.gz 文件时,我都会收到如下警告消息:

警告:在 /usr/share/miniconda/envs/bld/conda-bld/simpleitk_1598369168428/work/build/ITK/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx,第 1009 行 NiftiImageIO (0x56268f287910):/data/temp。 img.gz 是分析文件,已弃用

有没有办法抑制警告信息? 我尝试使用导入日志库并设置 logging.disable(sys.maxsize) 和导入警告并设置 warnings.simplefilter("ignore", category=PendingDeprecationWarning)

这两种方法都不适合我。

如果不指定类别怎么办?

我是根据具体情况这样做的,这样它就不会影响整个 python 文件。

import warnings

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    # do whatever after this
    

更新:这可能是 C++ 方面发出警告而不是 python 的问题。 您必须深入研究 C++ 才能抓住它。 https://github.com/InsightSoftwareConsortium/ITK/blob/34231b57021418fdb6afd4fcf5082a73b12969ed/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx#L1009 and then look at itkWarningMacro : https://itk.org/Doxygen318/html/itkMacro_8h.html #a0c47033c6ca9aae1319b1793f4419ada

ITK 警告消息显示可以使用itk.ProcessObject.SetGlobalWarningDisplay全局切换。 所以你要

itk.ProcessObject.SetGlobalWarningDisplay(False)

请参阅 static function itk::Object::SetGlobalWarningDisplay C++ 文档在这里

您可能想查看如何在 Github 上的 Python 中的 simpleitk.ReadImage 中禁用警告

您可以通过调用SetGlobalWarningDisplay禁用 SimpleITK 的所有警告显示。

import SimpleITK as sitk
from medpy.io import load

sitk.ProcessObject_SetGlobalWarningDisplay(False)
image_data, image_header = load('path/to/image.nii.gz')
sitk.ProcessObject_SetGlobalWarningDisplay(True)

暂无
暂无

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

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