多张图片读入后组成一个矩阵。怎么读取图片,可以让其读入的形式是:ndarra ...

打印 上一主题 下一主题

主题 986|帖子 986|积分 2958

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  • 不显示通道数:
    要将多张图片读取为一个 NumPy 数组(ndarray),此中 a 表示图片数量,b 和 c 分别表示每张图片的高度和宽度(不显示通道数),你可以使用 Python 中的 PIL(Pillow)库和 NumPy 库。下面是一个示例代码,展示了怎样实现这一点:
    代码示例
   import numpy as np
from PIL import Image
import os
  def load_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        img_path = os.path.join(folder, filename)
        img = Image.open(img_path).convert('L')  # 转为灰度图像,只有一个通道
        images.append(np.array(img))
      # 如果你想保持所有图片的尺寸划一,可以在这里对它们举行裁剪或缩放
    # 比方:
    # img = img.resize((desired_width, desired_height))
      return np.array(images)
  # 指定图片所在的文件夹路径
folder_path = 'path/to/your/images/'
image_array = load_images_from_folder(folder_path)
  print(image_array.shape)  # 输出.shape 应该是 (a, b, c)
 
  


  • 说明

     

    • 导入库:你需要确保已经安装了 Pillow 和 NumPy 库,可以使用以下命令安装:
    •            pip install Pillow numpy
       
    • 图片读取

      • os.listdir(folder) 列出文件夹中的所有文件名。
      • Image.open(img_path).convert('L') 读取每张图片并将其转换为灰度图像(单通道)。
      • np.array(img) 将图片转换为 NumPy 数组。

    • 返回结果:所有图片以数组形式返回,而且外形为 (a, b, c),此中 a 是图片数量,b 和 c 是图片的高度和宽度。
    • 调解图片大小:如果图片尺寸不一,可以在读取时添加尺寸调解的代码,以确保所有图片的外形划一。

  • 显示通道数:
    要将多张图片读取为一个 NumPy ndarray,而且使其外形为 (a, b, c),此中 a 是图片的数量,b 和 c 是每张图片的尺寸(高度和宽度),你可以使用 OpenCV 或 PIL 库来读取图片,并将它们转换成 ndarray。
    下面是使用这两个库的例子:
    使用 OpenCV
   import cv2
import numpy as np
import os
  # 读取图片函数
def load_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        img = cv2.imread(os.path.join(folder, filename))
        if img is not None:
            img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 将 BGR 转换为 RGB
            images.append(img)
    return np.array(images)
  # 使用示例
folder_path = 'path/to/your/images'
images_array = load_images_from_folder(folder_path)
  print(images_array.shape)  # 输出外形: (数量, 高度, 宽度, 通道数)
 
  

  • 使用 PIL

   from PIL import Image
import numpy as np
import os
  # 读取图片函数
def load_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        img = Image.open(os.path.join(folder, filename))
        img = img.convert('RGB')  # 转换为 RGB 模式
        images.append(np.array(img))
    return np.array(images)
  # 使用示例
folder_path = 'path/to/your/images'
images_array = load_images_from_folder(folder_path)
  print(images_array.shape)  # 输出外形: (数量, 高度, 宽度, 通道数)
 
  


  • 注意事项

    • 如果你希望输出的 ndarray 外形为 (a, b, c),你需要对最后的输出举行调解,通常你可以选择抛弃通道信息,外形大概转为 (a, b, c, 3),表示 RGB 通道。
    • 确保所有的图片都是同样的尺寸(高、宽),否则最终的 ndarray 会因为尺寸不划一而无法正确创建。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表