我正在尝试为一些学习项目在python中加载原始彩色眼底图像。这些是大小约为的RGB图像。 4000 * 2000 * 3。我想先将每个图像转换为灰度,然后再将其发送到模型中进行训练。为此,我尝试了以下两种方法:
方法1:
import matplotlib.image as mpimg
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
def load_images(folder):
images = []
for filename in os.listdir(folder):
img = mpimg.imread(os.path.join(folder, filename))
gray = rgb2gray(img)
images.append(gray)
return images
方法2:
from PIL import Image
def load_images(folder):
images = []
for filename in os.listdir(folder):
img = Image.open(os.path.join(folder, filename))
gray = img.convert('L')
images.append(gray)
return images
在这两种方法中,我分别在行Memory Error
和gray = rgb2gray(img)
处得到相同的gray = img.convert('L')
。
有什么方法可以一次将如此大的图像转换为灰度图像并将其存储为列表吗?
答案 0 :(得分:0)
事实证明,问题不在于命令,而在于我的数据大小。正如@ user894763正确指出的那样,我的数据大小高达10 GB,这是内存错误的原因。