python - 为什么我得到'numpy.ndarray'对象没有属性'convert'?
问题描述
我目前正在做一个机器学习项目,出于某种原因我自己实现了数据增强。
图像类型是
'PIL.JpegImagePlugin.JpegImageFile'
我想将我的图像附加到名为图像的列表中。
#method "scale_augmentation" is self defined function. Return image.
f_processed = self.scale_augmentation(image = f)
#error occurs here
self.images.append(Image.fromarray(f_processed.convert('RGB'), dtype=np.float32) / 255.)
我被这个错误困扰了很长时间,并且我经历了许多关于这个错误的堆栈溢出问题。提前致谢。
Scale_augmentation 函数看起来像这样
def scale_augmentation(image, scale_range=(256, 400), crop_size=224):
scale_size = np.random.randint(*scale_range)
image = imresize(image, (scale_size, scale_size))
image = random_crop(image, (crop_size, crop_size))
return image
错误也看起来像这样
--> 100 self.images.append(Image.fromarray(f_processed.convert('RGB'), dtype=np.float32) / 255.)
AttributeError: 'numpy.ndarray' object has no attribute 'convert'
解决方案
首先将其转换为图像对象,Image.fromarray
然后使用convert
尝试这个:
self.images.append((Image.fromarray(f_processed, dtype=np.float32).convert('RGB') / 255.)
明确的步骤是:
image = Image.fromarray(image)
image = image.convert("RGB")
现在图像是 jpeg 格式,你这样做:
image.save('test_test.jpeg')
推荐阅读
- html - 无法让 document.getElementById("").value 或 document.getElementById("").innerHtml 工作
- android - 如何通过接口控制另一个片段中的片段中的视图
- mysql - 使用 MySQL Workbench 执行代码块
- wpf - 使用 HierarchicalDataTemplate 显示结构化数据,而不使用带有子对象列表或集合的父类
- c++ - Boost单元测试夹具继承测试类,以访问受保护的方法?
- nativescript - Sass 用于 Sidekick 创建的项目
- c# - 标签助手中的上下文化
- digital-signature - 区块链的类型
- python - 如何将 settings.py 文件中的常量导入 Django 控制台?
- python - PLY 中的 IF 语句