Spaces:
Running
Running
| import cv2 | |
| import numpy as np | |
| from scipy import ndimage | |
| class ImageProcessor: | |
| def __init__(self): | |
| pass | |
| def preprocess_image(self, image): | |
| """Preprocess the input image""" | |
| # Convert to grayscale | |
| if len(image.shape) == 3: | |
| gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
| else: | |
| gray = image | |
| # Apply Gaussian blur | |
| blurred = cv2.GaussianBlur(gray, (5, 5), 0) | |
| return blurred | |
| def generate_depth_map(self, image): | |
| """Generate a depth map from the image""" | |
| # Preprocess the image | |
| processed = self.preprocess_image(image) | |
| # Use Sobel operators to detect edges | |
| sobel_x = cv2.Sobel(processed, cv2.CV_64F, 1, 0, ksize=3) | |
| sobel_y = cv2.Sobel(processed, cv2.CV_64F, 0, 1, ksize=3) | |
| # Combine the gradients | |
| gradient_magnitude = np.sqrt(sobel_x**2 + sobel_y**2) | |
| # Normalize the depth map | |
| depth_map = cv2.normalize(gradient_magnitude, None, 0, 1, cv2.NORM_MINMAX) | |
| return depth_map | |