You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib imshow搭配ListedColormap绘制分割掩码时边界颜色异常

问题原因

matplotlib的imshow函数默认启用了像素插值逻辑,会对相邻不同取值的像素做平滑过渡计算,生成原本不存在的中间值,这些中间值会被你设置的ListedColormap映射到中间档位的颜色,也就是你看到的边界异常色,该问题和BoundaryNorm的边界设置无关,是插值环节产生的伪数据导致的。

解决方案

  • 直接在调用imshow时显式指定插值方式为最近邻插值,关闭平滑逻辑即可,修改你的imshow调用代码为:
ax.imshow(np.squeeze(_ov,axis=0), cmap=cmap, norm=norm, interpolation='nearest')
  • 如果需要全局生效避免每次调用都重复设置,可以在代码开头添加全局配置:
import matplotlib.pyplot as plt
plt.rcParams['image.interpolation'] = 'nearest'

修改后像素会严格按照原始取值映射颜色,不会出现插值生成的中间色,边界杂色问题就会消失。

内容的提问来源于stack exchange,提问作者nicetrybro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:12:00