Чтобы реализовать средний фильтр NumPy в Python, сначала импортируйте NumPy, а затем определите функцию, которая применяет фильтр, вычисляя среднее значение интенсивностей пикселей в окрестности размером с ядро вокруг каждого пикселя. Эта функция перебирает каждый пиксель, вычисляет среднее значение окружающих пикселей и присваивает это среднее значение обратно центральному пикселю.

По своей сути фильтр усреднения NumPy в Python представляет собой простой, но эффективный метод цифровой фильтрации. Он работает путем замены каждого элемента массива (или пикселя изображения) средним значением его соседей, включая его самого. Этот процесс приводит к эффекту сглаживания, который особенно полезен при уменьшении шума в изображениях или сигналах.

Содержание

Ключевые понятия

  1. Локальное соседство: набор элементов, окружающих текущий элемент (или пиксель).
  2. Размер ядра или окна: размер окрестности, по которой вычисляется среднее значение.
  3. Обработка краев: как фильтр обрабатывает границы массива или изображения в Python.

Применение

  1. Обработка изображений: для шумоподавления и сглаживания изображений.
  2. Анализ данных: чтобы сгладить краткосрочные колебания и выделить долгосрочные тенденции в данных.
  3. Обработка сигналов: используется для уменьшения случайного шума сигналов.

Реализация

import numpy as np
def average_filter(data, kernel_size=3):
    pad_size = kernel_size // 2
    padded_data = np.pad(data, pad_size, mode='constant')
    filtered_data = np.zeros_like(data)
    for i in range(data.shape[0]):
        for j in range(data.shape[1]):
            neighborhood = padded_data[i:i+kernel_size, j:j+kernel_size]
            filtered_data[i, j] = np.mean(neighborhood)
    return filtered_data

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
filtered_data = average_filter(data)
print("Filtered Data:\n", filtered_data)

Выходные данные: эти выходные данные демонстрируют сглаживающий эффект фильтра усреднения NumPy в Python. Каждый элемент исходного массива заменяется средним значением его локальной окрестности, в результате чего мы получаем значения, которые мы видим на выходе.

Filtered Data:
 [[1 2 1]
 [3 5 3]
 [2 4 3]]

Я протестировал код в Pycharm, и скриншот указан ниже:

Средний фильтр NumPy в Python

Добавить комментарий