| import os, numpy as np | |
| from PIL import Image | |
| os.makedirs("examples/synthetic_phantom", exist_ok=True) | |
| z = 64 | |
| y = 128 | |
| x = 128 | |
| for i in range(z): | |
| Y, X = np.meshgrid(np.linspace(-1,1,x), np.linspace(-1,1,y)) | |
| cx = 0.2*np.sin(2*np.pi*i/z) | |
| cy = 0.2*np.cos(2*np.pi*i/z) | |
| r = np.sqrt((X-cx)**2 + (Y-cy)**2) | |
| img = (np.exp(-(r**2)/(2*(0.2**2))) * 255).astype(np.uint8) | |
| img = img + np.random.randint(0,20,size=img.shape).astype(np.uint8) | |
| Image.fromarray(img).save(f"examples/synthetic_phantom/slice_{i:03d}.png") | |
| print("Synthetic phantom saved to examples/synthetic_phantom/") | |