cv2.imshow()显示图片未响应,以及cv2.imwrite()黑图问题

自己代码如下

def create_sample():
    # 训练标签数据csv转图片
    train_mask = pd.read_csv(TRAIN_MASK_DIR+"/train_mask.csv", sep='\t', names=['name', 'mask'])
    for name,mask in train_mask.values:
        if(pd.isnull(mask)):
            continue;
        mask = rle_decode(mask)
        cv2.imshow("test",mask)
        cv2.imwrite(TRAIN_MASK_DIR+'/'+name.rsplit(".",maxsplit=1)[0]+"_mask.jpg", mask)
        break;

cv2.imshow()

这个图片展示我换成了就可以正常显示了

      plt.axis('off')
      plt.imshow(mask,cmap="gray")

在这里插入图片描述

cv2.imwrite()

      cv2.imwrite(TRAIN_MASK_DIR+'/'+name.rsplit(".",maxsplit=1)[0]+"_mask.jpg", mask)
改成把mask也就是ndarray存储的图片*255,像素还原嘛。就可以正常保存图片了
      cv2.imwrite(TRAIN_MASK_DIR+'/'+name.rsplit(".",maxsplit=1)[0]+"_mask.jpg", mask*255)

综合起来的代码如下啦

这里去了break试试批量处理。plt也可以保存图片但是速度太慢了,比不cv2

def create_sample():
    # 训练标签数据csv转图片
    train_mask = pd.read_csv(TRAIN_MASK_DIR+"/train_mask.csv", sep='\t', names=['name', 'mask'])
    for name,mask in train_mask.values:
        if(pd.isnull(mask)):
            continue;
        mask = rle_decode(mask)
        print(type)
        plt.imshow(mask,cmap="gray")
        plt.axis('off')
        cv2.imwrite(TRAIN_MASK_DIR+'/'+name.rsplit(".",maxsplit=1)[0]+"_mask.jpg", mask*255)
        break;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47220500/article/details/121475661