blinddeconv.filters package

Submodules

Module contents

Пакет фильтров для генерации искажений изображений.

Модули:

base: Базовый класс FilterBase blur: Фильтры размытия (Defocus, Motion blur) noise: Фильтры шума (Gaussian, Poisson, Salt & Pepper) denoise: Методы уменьшения шума smooth: Сглаживающие фильтры distributions: Функции распределения для ядер colored_noise: Генераторы цветного шума

Авторы: Юров П.И., Беззаборов А.А.

class blinddeconv.filters.BSpline_blur(shape_points: ndarray, intensity_points: ndarray, output_size: Tuple[int, int] = (15, 15), shape_degree: int = 3, intensity_degree: int = 2, n_samples: int = 1000)[исходный код]

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

Фильтр размытия в движении, имитирующий криволинейное неравномерное движение.

Создает 2D B-spline для моделирования сложных траекторий.

Атрибуты

shape_pointsnp.ndarray

Точки, задающие форму B-spline.

intensity_pointsnp.ndarray

Точки, задающие интенсивность.

output_sizeTuple[int, int]

Размер выходной матрицы PSF.

shape_degreeint

Степень B-spline для формы.

intensity_degreeint

Степень B-spline для интенсивности.

n_samplesint

Количество точек для дискретизации кривой.

__init__(shape_points: ndarray, intensity_points: ndarray, output_size: Tuple[int, int] = (15, 15), shape_degree: int = 3, intensity_degree: int = 2, n_samples: int = 1000)[исходный код]

Инициализация фильтра криволинейного движения.

Параметры

shape_pointsnp.ndarray

Точки, задающие форму кривой [x, y].

intensity_pointsnp.ndarray

Точки, задающие интенсивность вдоль кривой.

output_sizeTuple[int, int]

(width, height) Размер выходной матрицы PSF.

shape_degreeint

Степень B-spline для формы.

intensity_degreeint

Степень B-spline для интенсивности.

n_samplesint

Количество точек для дискретизации кривой.

create_dual_bspline_psf() ndarray[исходный код]

Создает PSF используя два B-spline: для формы и для интенсивности.

description() str[исходный код]

Возвращает название способа смаза в файловой системе.

filter(image: ndarray) ndarray[исходный код]

Применение размытия к изображению.

class blinddeconv.filters.BilateralFilter(params: int | Tuple[int, float, float])[исходный код]

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

Билатеральный фильтр (с сохранением границ).

Атрибуты

dint

Диаметр окрестности пикселя.

sigma_colorfloat

Сигма фильтр в цветовом пространстве.

sigma_spacefloat

Сигма фильтр в координатном пространстве.

__init__(params: int | Tuple[int, float, float])[исходный код]

Инициализация билатерального фильтра.

Параметры

paramsUnion[int, Tuple[int, float, float]]

d или (d, sigma_color, sigma_space).

description() str[исходный код]

Выдает название смаза с параметром.

filter(img: ndarray) ndarray[исходный код]

Применение билатерального фильтра к изображению.

class blinddeconv.filters.Brown_Noise(noise_level: float = 0.2)[исходный код]

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

Коричневый шум (1/f)^2.

Атрибуты

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

__init__(noise_level: float = 0.2) None[исходный код]

Инициализация.

Параметры

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(img)[исходный код]

Применяет коричневый шум к изображению.

class blinddeconv.filters.ColoredNoise(noise_level: float = 0.2, beta: float = 1.0)[исходный код]

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

Цветной шум (1/f)^beta.

Атрибуты

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

betafloat

Параметр спектрального наклона (1.0 = розовый шум, 2.0 = коричневый).

__init__(noise_level: float = 0.2, beta: float = 1.0) None[исходный код]

Инициализация.

Параметры

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

betafloat

Параметр спектрального наклона (1.0 = розовый, 2.0 = коричневый).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(img)[исходный код]

Применяет цветной шум к изображению.

class blinddeconv.filters.DefocusBlur(psf: Callable[[ndarray, float], ndarray], param: float = 5.0, kernel_size: int | None = None)[исходный код]

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

Фильтр размытия вне фокуса, имитирующий эффект расфокусировки камеры.

Создает 2D размытие в форме колокола с использованием настраиваемой PSF-функции.

Атрибуты

psfCallable

Функция распределения точки (PSF), генерирующая ядро размытия.

paramfloat

Параметр интенсивности размытия.

kernel_sizeOptional[int]

Фиксированный размер ядра размытия (None для автоопределения).

__init__(psf: Callable[[ndarray, float], ndarray], param: float = 5.0, kernel_size: int | None = None) None[исходный код]

Инициализация фильтра размытия вне фокуса.

Параметры

psfCallable

Функция, принимающая (radius, param) и возвращающая значения ядра.

paramfloat

Параметр контроля интенсивности размытия.

kernel_sizeOptional[int]

Опциональный фиксированный размер ядра (должен быть нечетным).

description() str[исходный код]

Возвращает название способа смаза и его параметры в файловой системе.

filter(image: ndarray) ndarray[исходный код]

Применение размытия вне фокуса к изображению.

Параметры

imagenp.ndarray

Входное изображение для размытия.

Возвращает

np.ndarray

Размытое изображение.

generate_kernel() ndarray[исходный код]

Генерация ядра размытия.

class blinddeconv.filters.FilterBase(param: Any, type: str)[исходный код]

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

Абстрактный базовый класс для фильтров изображений.

Атрибуты

paramAny

Параметры фильтра.

typestr

Тип фильтра (blur, noise, denoise и т.п.).

__init__(param: Any, type: str) None[исходный код]

Инициализация фильтра.

Параметры

paramAny

Параметры фильтра.

typestr

Тип фильтра (например, blur, noise и т.п.).

abstract description() str[исходный код]

Возвращает зашифрованное название фильтра и его параметры.

abstract filter(image: ndarray) ndarray[исходный код]

Применение фильтра к изображению.

Параметры

imagenp.ndarray

Входное изображение в формате numpy массива.

Возвращает

np.ndarray

Отфильтрованное изображение.

get_type() str[исходный код]

Возвращает тип фильтра.

param = None
class blinddeconv.filters.GaussianBlur(params: int | Tuple[int, float])[исходный код]

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

Гауссовский фильтр размытия.

Атрибуты

kernel_sizeint

Размер гауссовского ядра (должен быть нечетным и положительным).

stdfloat

Стандартное отклонение (0 для автоматического расчета).

__init__(params: int | Tuple[int, float]) None[исходный код]

Инициализация гауссовского фильтра.

Параметры

paramsUnion[int, Tuple[int, float]]

kernel_size или (kernel_size, std).

description() str[исходный код]

Выдает название смаза с параметром.

filter(img: ndarray) ndarray[исходный код]

Применить гауссовское размытие к изображению.

class blinddeconv.filters.GaussianNoise(param: float)[исходный код]

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

Фильтр аддитивного гауссовского шума.

Добавляет нормально распределенный шум с заданным стандартным отклонением.

Атрибуты

paramfloat

Стандартное отклонение гауссовского шума.

__init__(param: float) None[исходный код]

Инициализация фильтра гауссовского шума.

Параметры

paramfloat

Стандартное отклонение шума (должно быть положительным).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(image: ndarray) ndarray[исходный код]

Применение гауссовского шума к изображению.

Параметры

imagenp.ndarray

Входное изображение (любой тип, будет преобразовано в float32).

Возвращает

np.ndarray

Зашумленное изображение (той же формы и типа, что и входное).

class blinddeconv.filters.Kernel_convolution(npy_file_path: str)[исходный код]

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

Фильтр, значения матрицы которого сохранены в .npy файле.

Загружает и применяет эту матрицу к изображению.

Атрибуты

npy_file_pathstr

Путь до .npy файла с ядром.

__init__(npy_file_path: str) None[исходный код]

Инициализация сохраненного фильтра.

Параметры

npy_file_pathstr

Путь до .npy файла с ядром.

description() str[исходный код]

Возвращает название способа смаза в файловой системе.

filter(image: ndarray) ndarray[исходный код]

Применение фильтра к изображению.

class blinddeconv.filters.MeanBlur(kernel_size: int)[исходный код]

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

Усредняющий (боксовый) фильтр размытия.

Атрибуты

kernel_sizeint

Размер усредняющего ядра (должен быть нечетным и положительным).

__init__(kernel_size: int) None[исходный код]

Инициализация усредняющего фильтра.

Параметры

kernel_sizeint

Размер усредняющего ядра (должен быть нечетным и положительным).

description() str[исходный код]

Выдает название смаза с параметром.

filter(image: ndarray) ndarray[исходный код]

Применить усредняющее размытие к изображению.

Параметры

imagenp.ndarray

Входное изображение (в градациях серого или цветное).

Возвращает

np.ndarray

Размытое изображение.

class blinddeconv.filters.MedianBlur(kernel_size: int)[исходный код]

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

Медианный фильтр (эффективен против шума «соль-перец»).

Атрибуты

kernel_sizeint

Размер медианного ядра (должен быть нечетным и >=3).

__init__(kernel_size: int) None[исходный код]

Инициализация медианного фильтра.

Параметры

kernel_sizeint

Размер медианного ядра (должен быть нечетным и >=3).

description() str[исходный код]

Выдает название смаза с параметром.

filter(image: ndarray) ndarray[исходный код]

Применить медианное размытие к изображению.

class blinddeconv.filters.MotionBlur(psf: Callable[[ndarray, float], ndarray], param: float = 1.0, angle: float = 0, kernel_length: int | None = None)[исходный код]

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

Фильтр размытия в движении, имитирующий линейное движение камеры.

Создает одномерное направленное размытие, которое можно повернуть на любой угол.

Атрибуты

psfCallable

PSF-функция для одномерного движения.

paramfloat

Параметр контроля длины/интенсивности размытия.

anglefloat

Направление движения в градусах (0 = горизонтальное).

kernel_lengthOptional[int]

Фиксированная длина ядра размытия.

__init__(psf: Callable[[ndarray, float], ndarray], param: float = 1.0, angle: float = 0, kernel_length: int | None = None) None[исходный код]

Инициализация фильтра размытия в движении.

Параметры

psfCallable

Функция (x, param) -> значения ядра, где x - 1D массив координат.

paramfloat

Параметр для PSF-функции.

anglefloat

Угол направления размытия (в градусах).

kernel_lengthOptional[int]

Длина размытия (нечетное число).

description() str[исходный код]

Возвращает название способа смаза и его параметры в файловой системе.

filter(image: ndarray) ndarray[исходный код]

Применение размытия в движении к изображению.

generate_kernel() ndarray[исходный код]

Генерация ядра размытия в движении.

class blinddeconv.filters.OldPhotoNoise(strength: int = 30, f3dB: float = 0.05, fs: float = 1.0, apply_highpass: bool = True, highpass_cutoff: float = 0.01)[исходный код]

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

Коричневый шум для имитации старых фотографий.

Атрибуты

strengthint

Сила шума (0-255).

f3dBfloat

Частота среза экспоненциального фильтра (0-0.5).

fsfloat

Псевдо-частота дискретизации.

apply_highpassbool

Применять ли high-pass фильтр.

highpass_cutofffloat

Cutoff частота для high-pass фильтра.

__init__(strength: int = 30, f3dB: float = 0.05, fs: float = 1.0, apply_highpass: bool = True, highpass_cutoff: float = 0.01) None[исходный код]

Инициализация.

Параметры

strengthint

Сила шума (0-255).

f3dBfloat

Частота среза экспоненциального фильтра (0-0.5).

fsfloat

Псевдо-частота дискретизации.

apply_highpassbool

Применять ли high-pass фильтр.

highpass_cutofffloat

Cutoff частота для high-pass фильтра.

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(img)[исходный код]

Применяет 2D Brownian шум к изображению.

find_alpha(Fs: float, f3dB: float) float[исходный код]

Вычислить альфу для экспоненциального фильтра.

generate_2d_brownian_noise(shape: Tuple[int, int], alpha: float) ndarray[исходный код]

Создает 2D коричневый шум с фильтрацией по строкам и столбцам.

high_pass_filter_2d(img: ndarray, fs: float, cutoff: float = 0.01) ndarray[исходный код]

Применяет 2D high-pass фильтр через Butterworth.

class blinddeconv.filters.Pink_Noise(noise_level: float = 0.2)[исходный код]

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

Розовый шум (1/f).

Атрибуты

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

__init__(noise_level: float = 0.2) None[исходный код]

Инициализация.

Параметры

noise_levelfloat

Уровень шума (0.0 - без шума, 1.0 - сильный шум).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(img)[исходный код]

Применяет розовый шум к изображению.

class blinddeconv.filters.PoissonNoise(param: float)[исходный код]

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

Фильтр пуассоновского шума (шума дробления).

Имитирует шум подсчета фотонов с пуассоновской статистикой.

Атрибуты

paramfloat

Интенсивность шума (от 0.0 до 1.0).

__init__(param: float) None[исходный код]

Инициализация фильтра пуассоновского шума.

Параметры

paramfloat

Интенсивность шума (от 0.0 до 1.0).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(image: ndarray) ndarray[исходный код]

Применение пуассоновского шума к изображению.

Параметры

imagenp.ndarray

Входное изображение (любой тип).

Возвращает

np.ndarray

Зашумленное изображение (той же формы и типа, что и входное).

class blinddeconv.filters.SaltAndPepperNoise(param: Tuple[float, float, float])[исходный код]

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

Фильтр импульсного шума (типа «соль-перец»).

Добавляет случайные белые (соль) и черные (перец) пиксели к изображению.

Атрибуты

white_pixelfloat

Относительная интенсивность белых пикселей (соль).

black_pixelfloat

Относительная интенсивность черных пикселей (перец).

noise_amountint

Максимальное количество зашумляемых пикселей.

__init__(param: Tuple[float, float, float]) None[исходный код]

Инициализация фильтра шума «соль-перец».

Параметры

paramTuple[float, float, float]

Кортеж, содержащий: - white_pixel: Относительное количество белых пикселей (>=0). - black_pixel: Относительное количество черных пикселей (>=0). - noise_amount: Максимальное число изменяемых пикселей (>=0).

description() str[исходный код]

Выдает название шума в файловой системе с параметром.

filter(image: ndarray) ndarray[исходный код]

Применение шума «соль-перец» к входному изображению.

Параметры

imagenp.ndarray

Входное изображение (в градациях серого или цветное).

Возвращает

np.ndarray

Изображение с добавленным шумом «соль-перец».