Comprensión simple del filtrado común (filtrado gaussiano, filtrado medio, etc.)

Este artículo ha participado en el evento "Ceremonia de creación de recién llegados" para comenzar juntos el camino de la creación de oro.

3 tipos de filtro lineal: filtro de caja, filtro medio, filtro gaussiano

Filtro gaussiano:

1. Definición

Filtrado de imágenes, es decir, supresión del ruido bajo la condición de preservar los detalles de la imagen tanto como sea posible, reducción del ruido mediante la supresión de las bandas de alta frecuencia y, hasta cierto punto, la borrosidad de la imagen , lo que también se denomina suavizado o filtro de paso bajo. ; al suavizar, los píxeles en diferentes posiciones en la vecindad reciben diferentes pesos, lo que puede preservar las características generales de distribución del nivel de gris de la imagen mientras suaviza la imagen. inserte la descripción de la imagen aquí inserte la descripción de la imagen aquíHay dos parámetros principales para el núcleo gaussiano: el tamaño del núcleo gaussiano y el grado de dispersión σ. Se puede saber que: para que sea lo más suave posible, el kernel gaussiano debe ser lo más grande posible, pero para valores distintos a 3σ, su influencia no es muy grande, por lo que generalmente el valor de su arista es menor que 3σ, y su tamaño es generalmente 2*k+ 1, es un número impar. En este momento, el punto central es (k+1, k+1), y luego se sustituye en la fórmula anterior para obtener el valor de cada posición Se puede ver que debido a que no es infinito, la suma debe ser un poco menor que 1, por lo que a veces, al calcular, no se divide por 2xpixσ, sino que se obtiene por separado, y luego se suma como denominador, de modo que la suma es 1, la situación específica se analiza en detalle, ¡el efecto es similar! Nota: k+1 es el subíndice predeterminado que comienza en 1.

inserte la descripción de la imagen aquí

2. Código de implementación manual del filtro gaussiano:

# -*- coding: utf-8 -*-
"""
Created on Sat Jul 11 14:53:28 2020

@author: 陨星落云
"""
import imageio
import numpy as np

def GaussianFilter(img):
    
    h,w,c = img.shape
    # 高斯滤波 
    K_size = 3
    sigma = 1
    
    # 零填充
    pad = K_size//2
    out = np.zeros((h + 2*pad,w + 2*pad,c),dtype=np.float)
    out[pad:pad+h,pad:pad+w] = img.copy().astype(np.float)
    
    # 定义滤波核
    K = np.zeros((K_size,K_size),dtype=np.float)
    
    for x in range(-pad,-pad+K_size):
        for y in range(-pad,-pad+K_size):
            K[y+pad,x+pad] = np.exp(-(x**2+y**2)/(2*(sigma**2)))
    K /= (sigma*np.sqrt(2*np.pi))
    K /=  K.sum()
    
    # 卷积的过程
    tmp = out.copy()
    for y in range(h):
        for x in range(w):
            for ci in range(c):
                out[pad+y,pad+x,ci] = np.sum(K*tmp[y:y+K_size,x:x+K_size,ci])
    
    out = out[pad:pad+h,pad:pad+w].astype(np.uint8)
    
    return out

if __name__ == "__main__":
    
    # 读取图像
    img = imageio.imread("lena.jpg")
    # 高斯滤波
    imageio.imsave("GaussianFilter.jpg",GaussianFilter(img))
复制代码

3. El efecto del tamaño de la ventana y la desviación estándar

blog.shinelee.me/2018/09-19-…

Filtro medio:

El filtrado medio es un filtro lineal de dominio espacial en el que cada píxel de la imagen resultante tiene un valor igual al promedio de la imagen de entrada de sus vecinos. Es una forma de filtro de paso bajo ("desenfoque").inserte la descripción de la imagen aquí

Filtrado de cajas:

El núcleo utilizado en el filtrado de cuadros: inserte la descripción de la imagen aquícuando normalizar es verdadero, el filtrado de cuadros se convierte en filtrado medio. Es decir, el filtro medio es un caso especial del filtro de bloque normalizado.

La normalización consiste en escalar la cantidad a procesar a un cierto rango, como (0, 1).

(El análisis de funciones se proporciona uniformemente en el siguiente texto) Nota: ¡Generalmente, es un filtrado medio! ! ! siento

2 tipos de filtros no lineales: filtro mediano, filtro bilateral

filtro mediano

La idea básica del filtrado de mediana es reemplazar el valor de gris del píxel con el valor de mediana del valor de gris de la vecindad del píxel. Este método puede retener los detalles de la imagen mientras elimina el ruido de impulso y el ruido de sal y pimienta. . El filtro mediano tarda más que el filtro medio, pero su capacidad para eliminar el ruido es mayor . Nota: Basta con mirar la imagen para entender.inserte la descripción de la imagen aquí

filtrado bilateral

El filtrado bilateral es un procesamiento de compromiso que combina la proximidad espacial de la imagen y la similitud de los valores de píxel, y considera la información espacial y la similitud de la escala de grises para lograr el propósito de preservar los bordes y eliminar el ruido. inserte la descripción de la imagen aquíNota: ¡Tentativo! ! ! ! ! ! ! ! ! ! !

operador sobel

La idea del operador sobel, el operador sobel cree que la influencia de los píxeles de la vecindad en el píxel actual no es equivalente, por lo que los píxeles con diferentes distancias tienen diferentes pesos y tienen diferentes efectos en los resultados del operador. En general, cuanto mayor es la distancia, menor es el impacto. El principio del operador sobel es convolucionar los píxeles de la imagen entrante. La esencia de la convolución es calcular el valor del gradiente, o dar un promedio ponderado, donde el peso es el llamado kernel de convolución; el valor de gris está sujeto a una operación de umbral para determinar la información de borde. Si Gx es la convolución en la dirección x de la imagen original, Gy es la convolución en la dirección y de la inserte la descripción de la imagen aquíimagen original; el valor de píxel del punto de acción en la imagen original después de la convolución es: inserte la descripción de la imagen aquíSe puede simplificar a: inserte la descripción de la imagen aquíAdemás, el kernel de convolución también se puede rotar, usar y para encontrar bordes en direcciones que no son paralelas o perpendiculares al eje x,y.inserte la descripción de la imagen aquí inserte la descripción de la imagen aquí

Enlace de referencia: blog.csdn.net/qq_37534947…

Supongo que te gusta

Origin juejin.im/post/7078585077768126471
Recomendado
Clasificación