npy转png

npy转png

import numpy as np
import os
from PIL import Image

def npy_to_png(npy_path, png_path):
    data_npy = np.load(npy_path)
    # 这里根据需要进行转换
    # 归一化到0-255范围, 并转换为uint8类型
    data_npy = np.clip(
      (data_npy - data_npy.min()) / (data_npy.max() - data_npy.min()) * 255, 
      0, 255
    ).astype(np.uint8)

    # 确保数组是三维的,形如(height, width, channels)
    # 如果是灰度图像,则应该是二维数组(height, width)
    if data_npy.ndim == 2:
        # 灰度图像
        image = Image.fromarray(data_npy)
    elif data_npy.ndim == 3:
        # 彩色图像
        if data_npy.shape[2] not in [3, 4]:
            raise ValueError("数组必须是(H, W, 3)或(H, W, 4)格式")
        image = Image.fromarray(data_npy)
    else:
        raise ValueError("数组维度必须为2或3")

    image.save(png_path)

if __name__ == '__main__':
  npy_dir_path = "./data/npy"
  npy_name_list = os.listdir(npy_dir_path)
  for npy_name in npy_name_list:
    npy_path = os.path.join(npy_dir_path, npy_name)
    png_path = os.path.join("./data/png", npy_name.replace(".npy", ".png"))
    npy_to_png(npy_path, png_path)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值