AI-Based-Image-Deblurring-App / create_samples.py
ganeshkumar383's picture
Upload 26 files
13fe470 verified
raw
history blame
2.08 kB
# 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()