En este artículo, vamos a ver cómo hacer filtro de desenfoque media definida por el usuario del tamaño requerido y el uso de esta operación ejecutar un desenfoque de la imagen en Python?
desenfoque de la imagen se refiere a hacer la imagen menos clara o distinta. El Filtro Media utiliza a menudo para eliminar el ruido de una imagen o señal.
En este programa, vamos a utilizar dos funciones de OpenCV-pitón (CV2) Módulo .. vamos a ver su sintaxis y descripciones primero:
1) imread ():
Se necesita una ruta absoluta / relativa ruta del archivo de imagen como un argumento y devuelve su matriz de la imagen correspondiente.
Si el valor de la bandera es:
- 1 : carga una imagen en color.
- 0 : Imagen de cargas en el modo de escala de grises.
- -1 : Cargas imagen como tal incluyendo alfa canal.
Si no se le da el valor del indicador a continuación, mostrar la imagen original, que el camino está dada.
2) imshow ():
Toma nombre de la ventana y la matriz de imagen como un argumento con el fin de mostrar una imagen en una ventana de visualización con un nombre de ventana especificada.
también en este programa, vamos a utilizar una función del módulo de numpy .
media (): Toma matriz y devuelve la media de la matriz.
Además, en este programa que estamos utilizando el concepto de arreglo de rebanado
Let, Un es matriz 1-d:
A [Inicio: Parada: paso]
- empezar: número inicial de la secuencia.
- parada: Generar números hasta, pero sin incluir este número.
- paso: Diferencia entre cada número en la secuencia.
Ejemplo:
A = [1,2,3,4,5,6,7,8,9,10]
print(A[ 1: 5])
Output:
[2,3,4,5]
programa Python class suavizar una imagen en escala de grises mediante el uso definido por el usuario medio
# import cv2 module
import cv2
# import numpy module as np
import numpy as np
# Define a function for performing
# Mean Blur on images
def MeanBlur(img,size) :
Ic = img
# run a loop from half of the size + 1 to upto
# number of rows present in the image
for i in range(size//2 + 1, Ic.shape[0]) :
# run a loop from half of the size + 1 upto
# number of columns present in the image
for j in range(size//2 +1, Ic.shape[1]) :
# Take a sub-matrix of specifed order form Ic image matrix
N = Ic[i-size//2 : i+ size//2 + 1, j - size//2: j+ size//2 + 1]
# find out mean of submatrix
mean = np.mean(N)
# assing that mean value to the specified pixel coordinates
img[i, j] = mean
# return blur image
return img
# Driver code
if __name__ == "__main__" :
# read an image using imread() function of cv2
# we have to pass the path of the image
# and tha value of flag which is optional
img = cv2.imread(r'C:UsersuserDesktoppic6.jpg',0)
# displaying the gray scale image
cv2.imshow('original image',img)
# order of the submatrix
order = 5
# MeanBlur function calling
img = MeanBlur(img,order)
# displaying the smoothen image
cv2.imshow("smooth image",img)
salida