mindspore_xai.visual

查看源文件

CV类可视化。

mindspore_xai.visual.cv.normalize_saliency(saliency)[源代码]

归一化热力图。

参数:
  • saliency (Tensor, np.ndarray) - shape为 \((H, W)\) 的热力图。

返回:

np.ndarray,shape为 \((H, W)\) 的归一化热力图。

样例:

>>> import numpy as np
>>> from mindspore_xai.visual.cv import normalize_saliency
>>>
>>> # prepare the saliency map
>>> saliency_np = np.array([[0.4, 0.3, 0.1], [0.5, 0.9, 0.1]])
>>> output_img = normalize_saliency(saliency_np)
>>> print(output_img.shape)
(2, 3)
mindspore_xai.visual.cv.saliency_to_rgba(saliency, cm=None, alpha_factor=1.2, as_uint8=True, normalize=True)[源代码]

将热力图转换成RGBA numpy数组。

参数:
  • saliency (Tensor, np.ndarray) - shape为 \((H, W)\) 的热力图。

  • cm (Callable, 可选) - 颜色图,如果为 None ,将使用matplotlib默认的viridis色带。默认值: None

  • alpha_factor (float, 可选) - Alpha通道乘子。默认值:1.2。

  • as_uint8 (bool, 可选) - 返回UINT8数据类型。默认值: True

  • normalize (bool, 可选) - 归一化输入的热力图。默认值: True

返回:

np.ndarray,如果 cmNone ,返回shape 为 \((H, W, 4)\) 的RGBA图。

样例:

>>> import numpy as np
>>> from mindspore_xai.visual.cv import saliency_to_rgba
>>>
>>> # prepare the saliency map
>>> saliency_np = np.array([[0.4, 0.3, 0.1], [0.5, 0.9, 0.1]])
>>> output_img = saliency_to_rgba(saliency_np)
>>> print(output_img.shape)
(2, 3, 4)
mindspore_xai.visual.cv.saliency_to_image(saliency, original=None, cm=None, normalize=True, with_alpha=False)[源代码]

将热力图转换成PIL.Image.Image对象。

参数:
  • saliency (Tensor, np.ndarray) - shape为 \((H, W)\) 的热力图。

  • original (PIL.Image.Image, 可选) - 原图 。默认值: None

  • cm (Callable, 可选) - 颜色图,如果为 None ,使用matplotlib默认的viridis色带。默认值: None

  • normalize (bool, 可选) - 归一化输入的热力图。默认值: True

  • with_alpha (bool, 可选) - 在返回的图像中加入alpha通道。默认值: False

返回:

PIL.Image.Image,size为 \((H, W)\) 的RGB通道图像。如果 with_alphaTrue ,返回RGBA通道图像。

样例:

>>> import numpy as np
>>> from PIL import Image
>>> from mindspore_xai.visual.cv import saliency_to_image
>>>
>>> # prepare the original image
>>> img_array = np.random.randint(255, size=(400, 400), dtype=np.uint8)
>>> orig_img = Image.fromarray(img_array)
>>> # prepare the saliency map
>>> saliency_np = np.random.rand(400, 400)
>>> output_img = saliency_to_image(saliency_np, orig_img)
>>> print(output_img.size)
(400, 400)