当前位置 博文首页 > 不太冷的莱昂的博客:语义分割标签npy文件保存为图片的几种方式

    不太冷的莱昂的博客:语义分割标签npy文件保存为图片的几种方式

    作者:[db:作者] 时间:2021-09-02 16:29

       拿到一个分割数据集,总共7类,里面的图片都是.npy格式,为了查看分割标签的情况,现在要将npy文件转为图片格式。首先这个数据集的标签图的像素值是0~6,单通道灰度图,所以标签如果显示成图片的话应该是类似于全黑(因为像素值太过于接近于0,人眼分不清),但是以上是我自己思考未做实验的结果,当我实际动手时发现不同的保存方式得到的结果不一。现记录如下:
    

    使用OpenCV保存:

    import cv2 as cv
    import numpy as np
    
    data=np.load("*****.npy")
    cv.imshow(‘示例’,data)
    cv.waitkey(O)
    

    显示的图片如下:
    在这里插入图片描述

    使用PIL保存:

    import numpy as np
    from PIL import Image
    data=np.load("******.npy")
    image=Image.fromarray(data)
    image.show()
    

    显示的图片如下:
    在这里插入图片描述

    使用matplotlib保存:

    import numpy as np
    import matplot.pyplot as plt
    
    data=np.load("*****.npy")
    plt.imshows(data)
    plt.show()
    

    图片显示如下:
    在这里插入图片描述

    可以看到三种方式显示的图片都不一样,使用PIL和OpenCV方式保存的图片都是灰度图,而使用matplotlib保存的图片居然是彩图!经过查找资料发现,**这主要是由于PIL和opencv使用的不同版本的libjpeg造成的,**而matplotlib显示的是彩色索引图像,是通过调色板索引得到彩图。有博主建议使用PIL处理的图片送入网络训练更容易收敛。

    cs