API Reference
Справочник по публичным классам, методам и функциям пакета blinddeconv.
blinddeconv.processing.core
Класс Processing
Центральный класс-фасад фреймворка. Управляет загрузкой, фильтрацией, восстановлением и анализом изображений.
from blinddeconv.processing import Processing
Конструктор
Processing(
images_folder: str = "images",
blurred_folder: str = "blurred",
restored_folder: str = "restored",
data_path: str = "data",
color: bool = False,
kernel_dir: str = "kernels",
preprocess_dir: str = "preprocess",
dataset_path: str = "dataset",
)
Параметр |
Тип |
По умолчанию |
Описание |
|---|---|---|---|
|
|
|
Директория с исходными изображениями |
|
|
|
Директория со смазанными изображениями |
|
|
|
Директория для восстановленных |
|
|
|
Директория для CSV/метаданных |
|
|
|
|
|
|
|
Директория для ядер |
|
|
|
Директория для предобработанных |
|
|
|
Директория для метаданных датасетов |
При инициализации автоматически создаются все директории.
Методы загрузки
Метод |
Описание |
|---|---|
|
Загружает все изображения из |
|
Загружает одно изображение по пути |
|
Создаёт связь между оригиналом и смазанным |
|
Загружает связи из JSON |
|
Сохраняет связи в JSON |
Методы обработки
Метод |
Описание |
|---|---|
|
Применяет фильтр ко всем изображениям |
|
Сохраняет текущее смазанное в массив |
|
Загружает смазанное из массива в буфер |
|
Применяет пользовательское ядро |
|
Восстанавливает все изображения одним алгоритмом |
|
Полный пайплайн: фильтры → восстановление → визуализация |
Предобработка
Метод |
Описание |
|---|---|
|
Выравнивание гистограмм |
|
Адаптивное (CLAHE) |
|
Обратная коррекция |
Визуализация и экспорт
Метод |
Описание |
|---|---|
|
Визуализация сеткой |
|
Визуализация строкой |
|
Экспорт метрик в CSV |
|
Построение фронта Парето |
|
Запуск оптимизации гиперпараметров |
Очистка
Метод |
Описание |
|---|---|
|
Удаляет все связи |
|
Сброс состояний до исходного |
|
Удаляет файлы + сброс |
|
Очистка директорий (с подтверждением) |
|
Удаляет восстановленные файлы |
|
Убирает связи с восстановленными |
|
Полная очистка |
Утилиты
Метод |
Описание |
|---|---|
|
Переключение цветного/ч/б |
|
Количество вариантов размытия |
Функция merge
merge(frame1: Processing, frame2: Processing) → Processing
Объединяет массивы изображений из двух экземпляров Processing.
Функция show_from_table
show_from_table(table_path: Path, alg_name: str, window_scale: float = 1.0)
Визуализирует сетку из CSV-таблицы для указанного алгоритма.
blinddeconv.processing.utils
Класс Image
Структура данных «связь», хранящая граф оригинал → смазанные → восстановленные с метриками.
Image(original_path: str, is_color: bool)
Ключевые методы:
Метод |
Возвращает |
Описание |
|---|---|---|
|
|
Путь к оригиналу |
|
|
Путь к текущему смазанному (буфер) |
|
|
Все сохранённые смазанные |
|
|
Восстановленные |
|
|
PSNR восстановленных |
|
|
SSIM восстановленных |
|
|
Список применённых алгоритмов |
|
|
Оригинал как массив |
|
|
Смазанное как массив |
|
— |
Перемещает буфер в массив |
Утилитарные функции
Функция |
Описание |
|---|---|
|
Загрузка изображения через OpenCV |
|
Конвертация |
|
Нормализация для метрик |
|
Генерация уникального пути |
|
Расчёт PSNR и SSIM |
blinddeconv.processing.metrics
Функция |
Сигнатура |
Описание |
|---|---|---|
|
|
Peak Signal-to-Noise Ratio (dB) |
|
|
Structural Similarity Index [0,1] |
|
|
Дисперсия Лапласа (мера резкости) |
|
|
Sum of Modified Laplacian |
|
|
Мера сложности смаза [0,1] |
|
|
Signal-to-Noise Ratio (dB) |
|
|
Мера сложности шума [0,1] |
blinddeconv.algorithms.base
Класс DeconvolutionAlgorithm (ABC)
from blinddeconv.algorithms.base import DeconvolutionAlgorithm
Метод |
Тип |
Описание |
|---|---|---|
|
abstract |
Обработка изображения |
|
abstract |
Изменение гиперпараметров |
|
abstract |
Получение параметров |
|
Название алгоритма |
|
|
Время работы (-1 если не запускался) |
|
|
Загрузка параметров из JSON |
Собственные реализации
Класс |
Модуль |
Категория |
|---|---|---|
|
|
Классический |
|
|
Классический |
|
|
Классический |
|
|
Байесовский |
|
|
Байесовский |
|
|
Байесовский |
|
|
Вариационный |
|
|
Вариационный |
|
|
Вариационный |
|
|
Разреженный |
Полный путь модуля: blinddeconv.algorithms.blind_deconvolution.our_company.<category>.<module>
blinddeconv.filters
Класс FilterBase (ABC)
from blinddeconv.filters.base import FilterBase
Метод |
Описание |
|---|---|
|
Применение фильтра |
|
Описание для файловой системы |
|
Тип: |
blinddeconv.filters.blur
Класс |
Описание |
Параметры |
|---|---|---|
|
Размытие вне фокуса (2D) |
|
|
Размытие в движении (1D) |
|
|
Криволинейное движение (B-spline) |
|
|
Свёртка с ядром из .npy |
|
|
Тождественный фильтр |
— |
blinddeconv.filters.noise
Класс |
Описание |
Параметры |
|---|---|---|
|
Аддитивный гауссовский |
|
|
Пуассоновский (дробления) |
|
|
Импульсный |
|
|
Имитация старой фотографии |
|
|
Цветной шум (powerlaw) |
|
|
Розовый шум (1/f) |
|
|
Коричневый шум (1/f²) |
|
blinddeconv.filters.smooth
Класс |
Описание |
|---|---|
|
Сглаживание средним |
|
Медианное сглаживание |
|
Гауссово сглаживание |
|
Билатеральный фильтр |
blinddeconv.filters.distributions
PSF-функции для DefocusBlur и MotionBlur:
Функция |
Сигнатура |
Описание |
|---|---|---|
|
|
Гауссова PSF |
|
|
Равномерная (диск/прямоугольник) |
|
|
Линейно убывающая (конус) |
|
|
Кольцевая |
|
|
Экспоненциально убывающая |
|
|
2D-ядро из многомерного нормального |
|
|
Ядро по B-spline кривой |
blinddeconv.processing.extensions
Класс ProcessingExtension (ABC)
Базовый класс для расширений:
Метод |
Описание |
|---|---|
|
Основной метод расширения (abstract) |
|
Нормализация изображения для метрик |
|
Проверка корректности |
Класс HyperparameterOptimizer
result = proc.process_hyperparameter_optimization(
algorithm_processor=algo,
param_ranges={"max_iter": (50, 500), "kernel_size": (11, 31)},
n_trials=50,
metric="PSNR", # "PSNR" | "SSIM" | "SHARPNESS"
method=OptimizationMethod.TPE, # TPE | RANDOM | GP | NSGA2
timeout=3600,
n_jobs=1,
seed=42,
save_results=True,
)
Возвращает OptimizationResult с полями: best_params, best_value, n_trials, history, elapsed_time.
Класс ParetoFrontAnalyzer
Многокритериальный анализ: 3D фронт Парето, 2D проекции, тепловые карты.
proc.pareto()
Вспомогательные типы
Класс |
Описание |
|---|---|
|
Диапазон гиперпараметра (name, min, max, log_scale, step) |
|
Результат оптимизации |
|
Точка в многокритериальном пространстве |
|
Enum: |
|
Enum: |
blinddeconv.scripts
Класс DatasetGenerator
from blinddeconv.scripts.dataset_generator import DatasetGenerator
generator = DatasetGenerator(
processing_instance=proc,
input_dir="images/original",
output_dir="images/distorted",
kernel_dir="images/ground_truth_filters",
kernel_data_dir="images/kernel_data",
)
generator.generate()
Класс KernelGenerator
from blinddeconv.scripts.kernel_generator import KernelGenerator
gen = KernelGenerator(
kernel_dir="kernels/png",
kernel_data_dir="kernels/npy",
kernel_size=51,
)
run.py — программный API
load_config(config_path) → dict
Загрузка YAML/JSON конфигурации.
validate_config(config) → List[str]
Валидация по JSON Schema + логические проверки. Возвращает список ошибок.
run_pipeline(config, output_dir=None, generate_report=False, dry_run=False) → dict
Запуск пайплайна программно:
from run import load_config, validate_config, run_pipeline
config = load_config("configs/experiment.yaml")
errors = validate_config(config)
if not errors:
result = run_pipeline(config, generate_report=True)
create_algorithm(algo_config) → DeconvolutionAlgorithm
Фабрика алгоритмов из конфигурации.
create_filter(filter_config) → FilterBase
Фабрика фильтров из конфигурации.
Реестры
ALGORITHM_REGISTRY— словарь{name: {module, class_name, description, category}}FILTER_REGISTRY— словарь{name: {module, class_name, requires_psf, description}}PSF_REGISTRY— словарь{name: full_module_path}