图像随机翻转用python实现
时间: 2023-06-17 09:08:15 浏览: 103
要实现图像随机翻转,你可以使用Python中的Pillow库。以下是一个实现随机翻转的简单代码示例:
```python
from PIL import Image
import random
img = Image.open("image.jpg")
# 随机水平翻转
if random.random() < 0.5:
img = img.transpose(Image.FLIP_LEFT_RIGHT)
# 随机垂直翻转
if random.random() < 0.5:
img = img.transpose(Image.FLIP_TOP_BOTTOM)
img.save("flipped_image.jpg")
```
在此示例中,我们首先打开要翻转的图像。然后,我们使用 `random.random()` 函数生成一个介于0和1之间的随机数,从而确定是否随机水平或垂直翻转图像。如果随机数小于0.5,则执行相应的翻转,并将结果保存到新文件中。
相关问题
图像随机翻转用python实现,用cv2,并且要批量大小进行
可以使用以下代码实现图像随机翻转并批量处理:
```python
import cv2
import numpy as np
def random_flip(images):
outputs = []
for img in images:
# 随机选择翻转方式
flip_code = np.random.randint(-1, 2)
# 对图像进行水平、垂直或水平垂直翻转
flipped = cv2.flip(img, flip_code)
outputs.append(flipped)
return outputs
# 加载图像并转为灰度图
images = [cv2.imread(filename, 0) for filename in file_list]
# 转为numpy数组并添加一个维度作为批量大小
images = np.expand_dims(np.array(images), axis=0)
# 随机翻转图像
flipped_images = random_flip(images)
# 移除批量大小维度并转为列表
flipped_images = list(np.squeeze(flipped_images))
```
其中,`file_list` 是需要处理的图像文件名列表,`images` 是以批量大小为 1 的 numpy 数组,`random_flip` 函数用于随机翻转图像并返回批量大小相同的 numpy 数组,最后转换为列表并移除批量大小维度。
Python图像随机翻转代码
可以使用下面的Python代码来实现图像的随机翻转:from PIL import Image
import numpy as np# 创建图像
img = Image.new('RGB', (256, 256))# 转换为numpy数组
img_np = np.array(img)# 随机翻转
img_np_flip = np.flip(img_np, axis=1)# 转换回PIL图像
img_flip = Image.fromarray(img_np_flip)