Spaces:
Runtime error
Runtime error
File size: 1,777 Bytes
3602056 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import os
import random
from fastdownload import download_url
from duckduckgo_search import ddg_images
from fastcore.all import *
from fastai.vision.all import *
def search_images(term, max_images=30):
print(f"Searching for '{term}'")
return L(ddg_images(term, max_results=max_images)).itemgot('image')
def download_images(term, folder, num_images):
# Erstelle den Ordner, falls er nicht existiert
if not os.path.exists(folder):
os.makedirs(folder)
# Suche nach den Bild-URLs
urls = search_images(term, max_images=num_images)
# Lade jedes Bild herunter und speichere es im Ordner
for i, url in enumerate(urls):
filename = f"{i+1:04}.jpg"
dest = os.path.join(folder, filename)
try:
download_url(url, dest, show_progress=False)
print(f"Downloaded image {i+1}/{num_images} to {dest}")
except Exception:
print(f"Error trying to load Image {urls[i]}, trying next...")
print(f"Downloaded {num_images} images to folder {folder}.")
def cleanup_images():
for path, subdirs, files in os.walk('data'):
for directory in subdirs:
path = Path(directory)
failed = verify_images(get_image_files(path))
failed.map(Path.unlink)
print("Number of images in folder '",path,"' failed: ",len(failed))
def prepare_images():
for path, subdirs, files in os.walk('data'):
for directory in subdirs:
print("Resizing images in dir: ",directory)
resize_images(directory, max_size=500, dest=directory)
# Beispielaufruf
search_term = 'cumulonimbus cloud'
folder_name = 'cumulonimbus'
num_images = 250
download_images(search_term, folder_name, num_images)
prepare_images()
cleanup_images()
|