/
rodion_1521
/
EntropyMapSegmentation
Обзор
Документация
Войти
/
rodion_1521
/
EntropyMapSegmentation
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
EntropyMap.py
32 строки
1 KB
Rodion Gayvoronskiy
EntropyMap
08 май 2025, 19:30
08 май 2025, 19:30
619e2c3
Код
Авторство
О чём код?
import cv2 import numpy as np class EntropyMap: @staticmethod def calculate_local_entropy(window): hist = cv2.calcHist([window], [0], None, [256], [0, 256]) hist = hist.ravel() / hist.sum() entropy = -np.sum(hist * np.log2(hist + 1e-10)) return entropy @staticmethod def calculate_entropy_map(image, window): entropies = np.zeros_like(image, dtype=np.float32) height, width = image.shape for y in range(height): for x in range(width): y_min = max(0, y - window // 2) y_max = min(height, y + window // 2 + 1) x_min = max(0, x - window // 2) x_max = min(width, x + window // 2 + 1) entropy = EntropyMap.calculate_local_entropy(image[y_min:y_max, x_min:x_max]) entropies[y, x] = entropy return entropies @staticmethod def calculate_brightness_of_entropy(img, window): entropy_map = EntropyMap.calculate_entropy_map(img, window) brightness = 255 * ((entropy_map - np.min(entropy_map)) / (np.max(entropy_map) - np.min(entropy_map))) brightness = 255 - 10 * (255 - brightness) return brightness