blinddeconv.algorithms.iteration_logger module
Универсальный логгер итераций для алгоритмов слепой деконволюции.
Используется как callback: alg.set_callback(logger) перед alg.process(). Собирает промежуточные ядра, изображения, метрики и сохраняет их.
- Пример использования:
from blinddeconv.algorithms.iteration_logger import IterationLogger
- logger = IterationLogger(
save_dir=Path(«results/iterations/img1»), original=original_image, # для PSNR/SSIM gt_kernel=gt_kernel, # для kernel MSE / error ratio blurred=blurred_image, # для non-blind восстановления nonblind_func=my_nonblind, # callable(blurred, kernel) -> restored save_kernel_every=5, save_image_every=10,
) alg.set_callback(logger) restored, kernel = alg.process(blurred) logger.save_csv()
- class blinddeconv.algorithms.iteration_logger.IterationLogger(save_dir: Path, original: ndarray | None = None, gt_kernel: ndarray | None = None, blurred: ndarray | None = None, nonblind_func: Callable | None = None, save_kernel_every: int = 5, save_image_every: int = 10, only_finest_scale: bool = True)[исходный код]
Базовые классы:
objectCallback-логгер для сбора промежуточных результатов по итерациям.
- Вызывается алгоритмом как self._callback(state), где state — dict:
„iteration“ : int — номер итерации (внутри текущего масштаба) „scale“ : int — индекс масштаба пирамиды (0 = финальный) „num_scales“ : int — всего масштабов „kernel“ : ndarray — текущая оценка ядра „image“ : ndarray or None — текущее латентное изображение „metrics“ : dict — доп. метрики из алгоритма (kernel_diff, beta, …)
- __init__(save_dir: Path, original: ndarray | None = None, gt_kernel: ndarray | None = None, blurred: ndarray | None = None, nonblind_func: Callable | None = None, save_kernel_every: int = 5, save_image_every: int = 10, only_finest_scale: bool = True)[исходный код]
- Параметры:
save_dir (Path) – Папка для сохранения (создаётся автоматически).
original (ndarray or None) – Оригинальное изображение float64 [0,1] для вычисления PSNR/SSIM.
gt_kernel (ndarray or None) – Истинное ядро float64 (нормализованное, sum=1) для kernel MSE.
blurred (ndarray or None) – Размытое изображение float64 [0,1] для non-blind восстановления.
nonblind_func (callable or None) – Функция (blurred, kernel) -> restored_float64 для полного non-blind шага на каждой сохраняемой итерации.
save_kernel_every (int) – Сохранять ядро как PNG каждые N итераций (только finest scale).
save_image_every (int) – Сохранять восстановленное изображение каждые N итераций. Требует nonblind_func и blurred.
only_finest_scale (bool) – Если True — логируем только finest scale (scale=0). Если False — логируем все масштабы.
- reset()[исходный код]
Сброс логгера для повторного использования.
- save_csv(filename: str = 'iterations_log.csv')[исходный код]
Сохранить лог итераций в CSV.
- to_dataframe() DataFrame[исходный код]