115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
import glob
|
|
import os
|
|
import shutil
|
|
import cv2
|
|
|
|
import random
|
|
import string
|
|
|
|
beach_src_path = "p/beach"
|
|
beach_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/1xx_Beach"
|
|
building_src_path = "p/building"
|
|
building_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/2xx_Building"
|
|
|
|
bus_src_path = "p/bus"
|
|
bus_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/3xx_Bus"
|
|
|
|
dinosaur_src_path = "p/dinosaur"
|
|
dinosaur_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/4xx_Dinosaur"
|
|
|
|
elephant_src_path = "p/elephant"
|
|
elephant_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/5xx_Elephant"
|
|
|
|
flower_src_path = "p/flower"
|
|
flower_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/6xx_Flower"
|
|
|
|
horse_src_path = "p/horse"
|
|
horse_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/7xx_Horse"
|
|
|
|
mountain_src_path = "p/mountain"
|
|
mountain_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/8xx_Mountain"
|
|
|
|
dish_src_path = "p/dish"
|
|
dish_target_path = "/home/logic/_wsl_workspace/comission-playlist-2024/vinniesniper-54816/src/data/9xx_Dish"
|
|
|
|
def merge_images(input_folder, output_folder):
|
|
if not os.path.exists(output_folder):
|
|
os.mkdir(output_folder)
|
|
|
|
count = 0
|
|
for root, _, filenames in os.walk(input_folder):
|
|
for fn in list(sorted(filenames)):
|
|
if (count < 10000):
|
|
if os.path.getsize(os.path.join(root, fn)) == 0:
|
|
os.remove(os.path.join(root, fn))
|
|
continue
|
|
|
|
img = cv2.imread(os.path.join(root, fn))
|
|
if img is None:
|
|
os.remove(os.path.join(root, fn))
|
|
continue
|
|
|
|
if fn.endswith('.jpg'):
|
|
count += 1
|
|
shutil.copy(os.path.join(root, fn), os.path.join(output_folder, 'c_{:010d}.jpg'.format(count)))
|
|
|
|
def copy_img(src_path, target_path):
|
|
random_str = ''.join(random.choices(string.ascii_letters + string.digits, k=5))
|
|
tmp_dir = '_tmp/_tmp_' + random_str
|
|
os.mkdir(tmp_dir)
|
|
|
|
for f in glob.glob(os.path.join(target_path, 'c_*.jpg')):
|
|
os.remove(f)
|
|
|
|
merge_images(src_path, tmp_dir)
|
|
|
|
for f in sorted(glob.glob(tmp_dir+'/*.jpg')):
|
|
shutil.copy(f, target_path)
|
|
|
|
shutil.rmtree(tmp_dir)
|
|
print(' img add done' )
|
|
|
|
from concurrent.futures import ThreadPoolExecutor
|
|
|
|
def add_img(src_path, target_path):
|
|
print('add to ' + target_path, end="")
|
|
copy_img(src_path, target_path)
|
|
|
|
with ThreadPoolExecutor() as executor:
|
|
executor.submit(add_img, beach_src_path, beach_target_path)
|
|
executor.submit(add_img, building_src_path, building_target_path)
|
|
executor.submit(add_img, bus_src_path, bus_target_path)
|
|
executor.submit(add_img, dinosaur_src_path, dinosaur_target_path)
|
|
executor.submit(add_img, elephant_src_path, elephant_target_path)
|
|
executor.submit(add_img, flower_src_path, flower_target_path)
|
|
executor.submit(add_img, horse_src_path, horse_target_path)
|
|
executor.submit(add_img, mountain_src_path, mountain_target_path)
|
|
executor.submit(add_img, dish_src_path, dish_target_path)
|
|
|
|
|
|
# print('add to bus', end="")
|
|
# copy_img(bus_src_path, bus_target_path)
|
|
|
|
# print('add to dinosaur', end="")
|
|
# copy_img(dinosaur_src_path, dinosaur_target_path)
|
|
|
|
# print('add to elephant', end="")
|
|
# copy_img(elephant_src_path, elephant_target_path)
|
|
|
|
# print('add to flower', end="")
|
|
# copy_img(flower_src_path, flower_target_path)
|
|
|
|
# print('add to horse', end="")
|
|
# copy_img(horse_src_path, horse_target_path)
|
|
|
|
# print('add to mountain', end="")
|
|
# copy_img(mountain_src_path, mountain_target_path)
|
|
|
|
# print('add to dish', end="")
|
|
# copy_img(dish_src_path, dish_target_path)
|
|
|
|
print('done')
|
|
|
|
|
|
|