import os
import cv2
import numpy as np
import pandas as pd

# 读取图片标签文件
file_path = 'your_image_labels.csv'  # 替换为你的图片标签文件路径
imglist_file = pd.read_csv(file_path)

# 设置图片路径和批次标签
img_path = 'your_image_directory'  # 替换为你的图片文件夹路径
batch_label = 'cancer images'

# 初始化变量
index = 0
k = 1
labels = []
filename_list = []
num = 0
imgs = np.empty(27648,)

# 循环读取图片并进行预处理
for i in os.listdir(img_path):
    path = os.path.join(img_path, i)
    img = cv2.imread(path)
    img = cv2.resize(img, (96, 96))
    img = np.array(img)
    #cv2.imshow('IMREAD_COLOR+Color', img)
    #cv2.waitKey()
    b, g, r = cv2.split(img)
    img_array = np.concatenate((r, g, b), axis=0)
    array1 = img_array.flatten()
    #print(array1)
    print(array1.shape)
    imgs = np.vstack([imgs,array1])
        
    labels.append(imglist_file['label'][num])
   # labels.append(imglist_file['label2'][num])
    num = num + 1
    print(num)

# 删除imgs数组中的第一行空数组
imgs = imgs[1:]

# 打印最终的imgs数组和labels列表
print(imgs.shape)
print(len(labels))

这段代码展示了如何使用Python和OpenCV库对图像进行预处理。它首先读取包含图像标签信息的CSV文件,然后遍历指定文件夹中的所有图片文件。对于每一张图片,代码执行以下操作:

  1. 读取图片并将其缩放至统一大小 (96x96)。
  2. 将图片从BGR颜色空间转换为RGB颜色空间。
  3. 将三维图像数组转换为一维数组。
  4. 将一维数组添加到一个大的二维数组中,该数组存储了所有图片的数据。
  5. 将对应图片的标签存储在另一个列表中。

最终,代码将输出一个二维NumPy数组,其中包含了所有图片的像素值,以及一个包含所有图片标签的列表。这些数据可以用于训练图像分类模型或进行其他图像处理任务。

Python图像预处理:批量读取图片并转换为NumPy数组

原文地址: https://www.cveoy.top/t/topic/f1I1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录