En el campo del procesamiento de imágenes, el filtro de paso bajo ideal (ILPF) se utiliza para suavizar imágenes en el dominio de la frecuencia. Elimina el ruido de alta frecuencia de una imagen digital y conserva los componentes de baja frecuencia.
Puede ser especificado por la función-
Dónde,es una constante positiva. ILPF pasa todas las frecuencias dentro de un círculo de radio desde el origen sin atenuación y corta todas las frecuencias fuera del círculo.
Este es el punto de transición entre H(u, v) = 1 y H(u, v) = 0, por lo que se denomina frecuencia de corte .
es la distancia euclidiana desde cualquier punto (u, v) al origen del plano de frecuencia, es decir,
Acercarse:
Paso 1: Entrada: leer una imagen
Paso 2: Guardar el tamaño de la imagen de entrada en píxeles
Paso 3: Obtener la transformada de Fourier de la imagen de entrada
Paso 4: Asignar la frecuencia de corte
Paso 5: Diseño del filtro: Paso ideal del filtro de
paso bajo 6: Convolución entre la imagen de entrada transformada de Fourier y la máscara de filtrado
Paso 7: Tomar la transformada inversa de Fourier de la imagen contorneada
Paso 8: Mostrar la imagen resultante como salida
Implementación en MATLAB:
% MATLAB Code | Ideal Low Pass Filter % Reading input image : input_image input_image = imread('[name of input image file].[file format]'); % Saving the size of the input_image in pixels- % M : no of rows (height of the image) % N : no of columns (width of the image) [M, N] = size(input_image); % Getting Fourier Transform of the input_image % using MATLAB library function fft2 (2D fast fourier transform) FT_img = fft2(double(input_image)); % Assign Cut-off Frequency D0 = 30; % one can change this value accordingly % Designing filter u = 0:(M-1); idx = find(u>M/2); u(idx) = u(idx)-M; v = 0:(N-1); idy = find(v>N/2); v(idy) = v(idy)-N; % MATLAB library function meshgrid(v, u) returns % 2D grid which contains the coordinates of vectors % v and u. Matrix V with each row is a copy % of v, and matrix U with each column is a copy of u [V, U] = meshgrid(v, u); % Calculating Euclidean Distance D = sqrt(U.^2+V.^2); % Comparing with the cut-off frequency and % determining the filtering mask H = double(D <= D0); % Convolution between the Fourier Transformed % image and the mask G = H.*FT_img; % Getting the resultant image by Inverse Fourier Transform % of the convoluted image using MATLAB library function % ifft2 (2D inverse fast fourier transform) output_image = real(ifft2(double(G))); % Displaying Input Image and Output Image subplot(2, 1, 1), imshow(input_image), subplot(2, 1, 2), imshow(output_image, [ ]);
Imagen de entrada –
Producción:
Publicación traducida automáticamente
Artículo escrito por goodday451999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA