Initial commit

This commit is contained in:
2025-11-23 18:03:01 -08:00
commit 68b9adef1a
14 changed files with 423 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
import os
import cv2
import numpy as np
import random
IMG_SIZE = 64
NUM_IMAGES = 250 # Number of images per class
OUTPUT_DIR = 'data'
# Ensure folders exist
shapes = ['circle', 'square', 'rectangle', 'triangle']
for shape in shapes:
os.makedirs(os.path.join(OUTPUT_DIR, shape), exist_ok=True)
def draw_circle():
img = np.ones((IMG_SIZE, IMG_SIZE), dtype=np.uint8) * 255
center = (random.randint(8, 56), random.randint(8, 56))
radius = random.randint(4, min(60 - max(center), min(center)))
cv2.circle(img, center, radius, (0,), 2)
return img
def draw_square():
img = np.ones((IMG_SIZE, IMG_SIZE), dtype=np.uint8) * 255
start = (random.randint(4, 56), random.randint(4, 56))
size = random.randint(4, 60 - max(start))
cv2.rectangle(img, start, (start[0]+size + random.randint(0, 3), start[1]+size + random.randint(0, 3)), (0,), 2)
return img
def draw_rectangle():
img = np.ones((IMG_SIZE, IMG_SIZE), dtype=np.uint8) * 255
vertical = random.randint(0, 1)
long, short = (random.randint(4, 28), random.randint(33, 56))
if vertical:
start = (random.randint(4, 60 - short), random.randint(4, 60 - long))
width, height = short, long
else:
start = (random.randint(4, 60 - long), random.randint(4, 60 - short))
width, height = long, short
cv2.rectangle(img, start, (start[0]+width, start[1]+height), (0,), 2)
return img
def draw_triangle():
img = np.ones((IMG_SIZE, IMG_SIZE), dtype=np.uint8) * 255
pt1 = (random.randint(4, 60), random.randint(4, 60))
pt2 = (random.randint(4, 60), random.randint(4, 60))
pt3 = (random.randint(4, 60), random.randint(4, 60))
points = np.array([pt1, pt2, pt3])
cv2.drawContours(img, [points], 0, (0,), 2)
return img
draw_functions = {
'circle': draw_circle,
'square': draw_square,
'rectangle': draw_rectangle,
'triangle': draw_triangle
}
# ----- Generate images -----
for shape in shapes:
for i in range(NUM_IMAGES):
img = draw_functions[shape]()
filename = os.path.join(OUTPUT_DIR, shape, f"{shape}_{i}.png")
cv2.imwrite(filename, img)
print("Images generated successfully!")