scikit-image 0.17.2调用rgb2gray出现重复警告如何关闭或解决
解决方案
1. 临时关闭该警告
如果暂时不想调整代码逻辑,仅想屏蔽控制台的重复警告输出,可以在脚本开头添加以下代码:
import warnings # 屏蔽skimage.color模块抛出的FutureWarning类警告 warnings.filterwarnings("ignore", category=FutureWarning, module="skimage.color")
该方法仅在当前运行的脚本/IPython环境生效,不会影响其他项目的警告输出。
2. 从根源彻底消除警告
出现该警告的原因是scikit-image 0.17.2版本中,rgb2gray接口对输入的2D灰度图做了兼容性提示:后续版本的rgb2gray将仅接收3通道RGB图像作为输入,不再自动跳过灰度图转换逻辑。
你可以根据自己的使用场景二选一解决:
- 如果你确定所有输入都是2D灰度图,直接删除代码中调用
rgb2gray的语句即可,不需要做多余的转换操作。 - 如果你的代码需要同时兼容灰度图和RGB图输入,在调用
rgb2gray前增加维度判断即可,参考代码如下:
from skimage.color import rgb2gray def process_image(input_img): # 仅当输入为3通道RGB图像时执行灰度转换 if input_img.ndim == 3 and input_img.shape[2] == 3: gray_img = rgb2gray(input_img) else: gray_img = input_img # 后续图像处理逻辑 ...
调整后无论输入是灰度图还是RGB图都不会再触发警告,也兼容scikit-image后续版本的接口规则。
内容的提问来源于stack exchange,提问作者tetukowski
相关产品推荐
相关产品推荐

