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)[исходный код]

Базовые классы: object

Callback-логгер для сбора промежуточных результатов по итерациям.

Вызывается алгоритмом как 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[исходный код]