# Sample Images Creation Script import cv2 import numpy as np import os def create_sample_images(): """Create sample blurred and sharp images for testing""" # Create data directory if it doesn't exist os.makedirs('data/sample_images', exist_ok=True) # Generate a sharp test image height, width = 480, 640 # Create a test pattern with various features sharp_image = np.zeros((height, width, 3), dtype=np.uint8) # Add geometric shapes cv2.rectangle(sharp_image, (50, 50), (200, 150), (255, 0, 0), -1) # Blue rectangle cv2.circle(sharp_image, (400, 200), 80, (0, 255, 0), -1) # Green circle cv2.line(sharp_image, (100, 300), (500, 350), (0, 0, 255), 5) # Red line # Add text cv2.putText(sharp_image, 'SHARP IMAGE TEST', (150, 400), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) # Save sharp image cv2.imwrite('data/sample_images/sharp_test.png', sharp_image) # Create motion blurred version motion_kernel = np.zeros((15, 15)) motion_kernel[7, :] = 1/15 # Horizontal motion blur motion_blurred = cv2.filter2D(sharp_image, -1, motion_kernel) cv2.imwrite('data/sample_images/motion_blurred.png', motion_blurred) # Create Gaussian blurred version (defocus blur) gaussian_blurred = cv2.GaussianBlur(sharp_image, (15, 15), 5) cv2.imwrite('data/sample_images/defocus_blurred.png', gaussian_blurred) # Create noisy blurred version noise = np.random.normal(0, 25, sharp_image.shape).astype(np.uint8) noisy_blurred = cv2.add(gaussian_blurred, noise) cv2.imwrite('data/sample_images/noisy_blurred.png', noisy_blurred) print("Sample images created successfully!") print("Files created:") print("- data/sample_images/sharp_test.png") print("- data/sample_images/motion_blurred.png") print("- data/sample_images/defocus_blurred.png") print("- data/sample_images/noisy_blurred.png") if __name__ == "__main__": create_sample_images()