【问题标题】:How to display a ground truth image segmentation mask image in python?如何在python中显示地面真实图像分割蒙版图像?
【发布时间】:2020-09-27 00:45:03
【问题描述】:

我试过这段代码

from skimage import io
temp = io.imread(mask_input_path)
plt.imshow(temp)

这会显示一个正常的图像,因此输出是黑色的。

【问题讨论】:

    标签: python image-segmentation


    【解决方案1】:

    就像普通图像一样。如果您的整个蒙版是黑色的,则意味着您的图像中不存在所需的对象。

    但要仅选择蒙版区域,您需要在代码上多写 2 行

    import matplotlib.pyplot as plt
    input_img = plt.imread('img.jpg')
    mask_img  = plt.imread('mask.jpg')
    
    # select only masked area below
    masked = input_img.copy()
    masked[mask_img == 0 ] = 0
    
    fig, axes = plt.subplots(1, 3, figsize=(16, 12))
    ax = axes.flatten()
    
    ax[0].imshow(input_img, cmap="gray")
    ax[0].set_axis_off()
    ax[0].set_title("Original Imput Image", fontsize=12)
    
    ax[1].imshow(mask_img, cmap="gray")
    ax[1].set_axis_off()
    ax[1].set_title("Mask", fontsize=12)
    
    ax[2].imshow(masked, cmap="gray")
    ax[2].set_axis_off()
    ax[2].set_title("Masked", fontsize=12)
    
    plt.show()
    

    实际使用

    masked[mask_img < 30 ] = 0
    

    给出稍微好一点的结果,因为在我的情况下掩码值不完全为零

    【讨论】:

    • 这适用于二进制掩码,因为 0 被视为黑色,1 被视为白色。那么多类分割的情况呢?这里的图像是一个二维数组,每个元素都是一个对应于类的整数。 eg:每个像素属于0到7,对应7个类。
    猜你喜欢
    • 1970-01-01
    • 2020-09-23
    • 2021-10-06
    • 2020-12-01
    • 2019-08-13
    • 2014-10-15
    • 1970-01-01
    • 2020-01-31
    • 2020-02-20
    相关资源
    最近更新 更多