Python图像处理:使用OpenCV和Pandas读取和预处理图像数据
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)
代码解释:
- 读取标签文件: 使用
pd.read_csv(file_path)读取包含图像标签信息的CSV文件。 - 循环读取图像: 遍历图像文件夹,使用
cv2.imread(path)读取每个图像文件。 - 图像预处理: 使用
cv2.resize(img, (96, 96))将图像调整为统一大小,以便后续处理。 - 颜色通道处理: 使用
cv2.split(img)分离图像的颜色通道,然后使用np.concatenate((r, g, b), axis=0)按照RGB顺序合并颜色通道。 - 数组展平: 使用
img_array.flatten()将图像数组展平为一维数组。 - 数据存储: 将每个图像的展平数组存储到
imgs数组中,并将对应的标签存储到labels列表中。
这段代码展示了如何使用Python库读取、预处理和组织图像数据,为后续的机器学习模型训练做好准备。
原文地址: https://www.cveoy.top/t/topic/f1IX 著作权归作者所有。请勿转载和采集!