from PIL import Image import numpy as np def compute_histogram( image: Image.Image | np.ndarray, bins: int, value_range=(0, 256), normalize: bool = True, ) -> np.ndarray: image = np.array(image) if isinstance(image, Image.Image) else image histogram, _ = np.histogramdd( image.reshape(-1, 3), bins=bins, range=[value_range, value_range, value_range] ) histogram = histogram.astype(np.float32) if normalize: histogram = histogram / np.sum(histogram) return histogram