本地有一个face.txt文档,里面是【50】条url图片链接。帮我写一段python做数增强,额外再生成【200】张图片。
时间: 2024-09-28 08:17:41 浏览: 21
在Python中,我们可以使用PIL(Python Imaging Library)或者其更现代的替代品Pillow库来处理图像,并结合NumPy进行数据增强操作。这里我们将演示如何读取文件并使用Pillow库生成更多的图片。由于PIL的ImageEnhance模块提供了一些基本的数据增强功能,如旋转、缩放、色彩调整等,我们首先需要安装这两个库:
```bash
pip install pillow numpy
```
然后你可以编写如下代码来实现这个任务:
```python
import os
from PIL import Image, ImageEnhance, ImageFilter
# 读取原始图片路径列表
with open('face.txt', 'r') as f:
urls = [line.strip() for line in f.readlines()]
# 定义数据增强的范围(这里只示例了随机旋转和高斯模糊)
rotation_degrees = (0, 360) # 随机旋转角度范围
blur_radius = (0, 10) # 高斯模糊半径范围
# 初始化数据增强工具
enhancer_rot = ImageEnhance.rotate
enhancer_blur = ImageEnhance.Blur
# 创建新的图片目录,如果不存在
if not os.path.exists('augmented_faces'):
os.makedirs('augmented_faces')
# 对每张图片应用增强并保存到新目录
for url in urls[:50]: # 只对前50张图片进行增强(原图+200张增强)
try:
with Image.open(url) as img:
# 应用随机旋转
rotated_img = enhancer_rot(img).enhance(
min(1, max(0.1, random.uniform(*rotation_degrees))))
# 应用随机模糊
blurred_img = rotated_img.filter(
ImageFilter.GaussianBlur(radius=random.uniform(*blur_radius)))
# 保存增强后的图片
new_name = os.path.join('augmented_faces', f'{os.path.basename(url)}_augmented.jpg')
blurred_img.save(new_name)
print(f"Generated augmented image from {url}: {new_name}")
except Exception as e:
print(f"Failed to process {url}: {e}")
# 总共生成了50*2=100张新图片
print("Total generated images:", len(os.listdir('augmented_faces')))
```
注意:上述代码中的`random`模块需要导入才能生成随机数,如果你还没有导入,可以添加`import random`。