Python图像处理:使用OpenCV和Pandas读取和预处理图像数据

本代码片段演示了如何使用Python、OpenCV和Pandas库读取图像文件、预处理图像以及准备用于机器学习模型训练的数据。

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

# 设置图像路径和标签文件路径
img_path = 'path/to/your/images'
file_path = 'path/to/your/labels.csv'

# 使用Pandas读取标签文件
imglist_file = pd.read_csv(file_path)

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)
    # 使用OpenCV读取图像
    img = cv2.imread(path)
    # 调整图像大小
    img = cv2.resize(img, (96, 96))
    # 将图像转换为NumPy数组
    img = np.array(img)
    # 分离颜色通道
    b, g, r = cv2.split(img)
    # 合并颜色通道
    img_array = np.concatenate((r, g, b), axis=0)
    # 将图像数组展平
    array1 = img_array.flatten()
    # 将图像数组添加到imgs数组中
    imgs = np.vstack([imgs,array1])
    # 添加图像标签
    labels.append(imglist_file['label'][num])
    num = num + 1
    print(num)

代码解释:

  1. 读取标签文件: 使用 pd.read_csv(file_path) 读取包含图像标签信息的CSV文件。
  2. 循环读取图像: 遍历图像文件夹,使用 cv2.imread(path) 读取每个图像文件。
  3. 图像预处理: 使用 cv2.resize(img, (96, 96)) 将图像调整为统一大小,以便后续处理。
  4. 颜色通道处理: 使用 cv2.split(img) 分离图像的颜色通道,然后使用 np.concatenate((r, g, b), axis=0) 按照RGB顺序合并颜色通道。
  5. 数组展平: 使用 img_array.flatten() 将图像数组展平为一维数组。
  6. 数据存储: 将每个图像的展平数组存储到 imgs 数组中,并将对应的标签存储到 labels 列表中。

这段代码展示了如何使用Python库读取、预处理和组织图像数据,为后续的机器学习模型训练做好准备。

Python图像处理:使用OpenCV和Pandas读取和预处理图像数据

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

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