from typing import Dict import cv2 import numpy as np from PIL import Image class SharpnessMetric: def __init__(self): self.kernel_size = 3 @property def name(self) -> str: return "sharpness" def compute_score( self, image: Image.Image, prompt: str, ) -> Dict[str, float]: img = np.array(image.convert('L')) laplacian = cv2.Laplacian(img, cv2.CV_64F, ksize=self.kernel_size) sharpness = laplacian.var() return {"sharpness": float(sharpness)}