def getRandomImage(path, img_width, img_height): """这个函数是随机抽取10张图片来测试""" folders = list(filter(lambda x: os.path.isdir(os.path.join(path, x)), os.listdir(path))) random_directory = np.random.randint(0, len(folders)) path_class = folders[random_directory] file_path = os.path.join(path, path_class) file_names = [f for f in os.listdir(file_path) if os.path.isfile(os.path.join(file_path, f))] random_file_index = np.random.randint(0, len(file_names)) image_name = file_names[random_file_index] final_path = os.path.join(file_path, image_name) return image.load_img(final_path, target_size = (img_width, img_height)), final_path, path_class
时间: 2023-03-30 09:01:55 浏览: 76
这是一个关于 Python 编程的问题,我可以回答。这个函数是用来从指定路径中随机抽取一张图片,并返回该图片的路径、类别和大小。其中,函数的参数包括路径、图片的宽度和高度。函数的具体实现是先获取指定路径下的所有文件夹,然后随机选择一个文件夹,再从该文件夹中随机选择一张图片,最后返回该图片的路径、类别和大小。
相关问题
folders = os.listdir(dir_path1)
这段代码使用了Python的os模块中的listdir()函数来获取指定目录下的所有文件和文件夹的列表。
假设变量dir_path1存储了一个目录的路径,使用os.listdir(dir_path1)会返回一个包含该目录下所有文件和文件夹名称的列表。
你可以进一步处理这个列表,例如使用for循环遍历每个文件或文件夹,或者根据需要进行筛选和操作。
修改代码:import os from PIL import Image import glob import numpy as np # 遍历文件夹 folder_path = 'E:/机器学习/helefull/labels' folders = os.listdir(folder_path) # print(folders) for filename in glob.glob(r'E:/机器学习/helefull/labels/*.png'): img=Image.open(filename).convert("RGB") # images=np.asarray(img) # print(images) # 只处理其中的20个文件夹 folder for folder in folders[:20]: folder_full_path = os.path.join(folder_path, folder) # print(folder_full_path) if os.path.isdir(folder_full_path): images = os.listdir(folder_full_path) print(images) blank_img = Image.new('RGB', (417, 354), (0, 0, 0)) for i,image_name in images: # 打开当前图片 img_path = os.path.join(folder_full_path, image_name) img = Image.open(img_path) # 遍历每一个像素点 for x in range(img.width): for y in range(img.height): # 如果当前像素点值为255,则将该像素点在空白图片上标记为i+1 if img.getpixel((x, y)) == 255: blank_img.putpixel((x, y), i+100) blank_img.save(f'new_{folder}.png')
import os
from PIL import Image
import glob
import numpy as np
# 遍历文件夹
folder_path = 'E:/机器学习/helefull/labels'
folders = os.listdir(folder_path)
for filename in glob.glob(r'E:/机器学习/helefull/labels/*.png'):
img = Image.open(filename).convert("RGB")
# images=np.asarray(img)
# print(images)
# 只处理其中的20个文件夹
for folder in folders[:20]:
folder_full_path = os.path.join(folder_path, folder)
# print(folder_full_path)
if os.path.isdir(folder_full_path):
images = os.listdir(folder_full_path)
print(images)
blank_img = Image.new('RGB', (417, 354), (0, 0, 0))
for i, image_name in enumerate(images):
# 打开当前图片
img_path = os.path.join(folder_full_path, image_name)
img = Image.open(img_path)
# 遍历每一个像素点
for x in range(img.width):
for y in range(img.height):
# 如果当前像素点值为255,则将该像素点在空白图片上标记为i+1
if img.getpixel((x, y)) == 255:
blank_img.putpixel((x, y), i+100)
blank_img.save(f'new_{folder}.png')
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)