Initialize

This commit is contained in:
2025-10-17 22:34:40 -05:00
commit 75d706eadd
605 changed files with 131346 additions and 0 deletions

59
egg.py Normal file
View File

@@ -0,0 +1,59 @@
import cv2
import numpy as np
import math
# === Parameters ===
input_path = "input_image.png" # replace with your image filename
output_path = "radial_output.png"
canvas_size = 1000 # output size (square)
num_sections = 8 # 8 radial triangles (45° each)
# === Load and prepare image ===
img = cv2.imread(input_path, cv2.IMREAD_UNCHANGED)
img = cv2.resize(img, (canvas_size, canvas_size))
# Convert to grayscale if needed
if img.ndim == 3:
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
else:
img_gray = img.copy()
# === Create mask for one triangular wedge ===
center = (canvas_size // 2, canvas_size // 2)
radius = canvas_size // 2
angle_step = 360 / num_sections
angle1 = -angle_step / 2
angle2 = angle_step / 2
# Create polygon points for wedge
pts = np.array([
center,
(int(center[0] + radius * math.cos(math.radians(angle1))),
int(center[1] + radius * math.sin(math.radians(angle1)))),
(int(center[0] + radius * math.cos(math.radians(angle2))),
int(center[1] + radius * math.sin(math.radians(angle2))))
], np.int32)
mask = np.zeros_like(img_gray)
cv2.fillConvexPoly(mask, pts, 255)
# === Extract the wedge from input image ===
wedge = cv2.bitwise_and(img_gray, mask)
# === Prepare output canvas ===
output = np.zeros_like(img_gray)
# === Paste rotated copies of the wedge into all sections ===
for i in range(num_sections):
angle = i * angle_step
rot_mat = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(wedge, rot_mat, (canvas_size, canvas_size))
output = cv2.bitwise_or(output, rotated)
# === Optional: enhance lines for visibility ===
output = cv2.threshold(output, 10, 255, cv2.THRESH_BINARY)[1]
# === Save result ===
cv2.imwrite(output_path, output)
print(f"✅ Radial design saved as {output_path}")