Un filtro graba en relieve la Introducción:
filtro graba en relieve utilizado en imágenes de detección de bordes y curvas de nivel, se puede mejorar efectivamente la información de alta frecuencia (bordes y contornos) de la imagen, conservando la información de baja frecuencia (contenido de la imagen) de la imagen.
Dos experimentos: Filtro de relieve implementan utilizando filtros realzan los contornos Relieve
1 importación cv2 2 3 importación numpy como np 4 5 # Escala de grises 6 7 def BGR2GRAY (IMG): 8 9 b = img [:,:, 0] .copy () 10 11 g = img [:,:, 1 ] .copy () 12 13 r = img [:,:, 2 ] .copy () 14 15 # escala de grises 16 17 OUT = 0,2126 r * + 0,7152 * g + 0,0722 * b 18 19 OUT = out.astype (np. uint8) 20 21 vuelta hacia fuera 22 23 # filtro de gofrado 24 25 def emboss_filter (img, K_size = 3 ): 26 27 H, W = img.shape 28 29 # cero acolchado 30 31 pad = K_size // 2 32 33 OUT = np.zeros ((H + almohadilla * 2, W + pad * 2), dtype = np.float) 34 35 fuera [pad: almohadilla + H, pad: almohadilla + W] = . img.copy () astype (np.float) 36 37 tmp = out.copy () 38 39 # de estampado kernel 40 41 K = [[-2, -1, 0], [-.... 1, 1., 1.], [0., 1., 2 .]] 42 43 # filtrar 44 45 para y en rango ( H): 46 47 para x en gama (W): 48 49 fuera [pAD + y, almohadilla + x] = np.sum (K * (tmp [y: y + K_size, x: x + K_size])) 50 51 OUT = np.clip (hacia fuera, 0, 255 ) 52 53 OUT = OUT [pad: almohadilla + H, pad: almohadilla + W] .astype (np.uint8) 54 55 vuelta hacia fuera 56 57 # imagen Lee 58 59img = cv2.imread ( " ../paojie.jpg " ) .astype (np.float) 60 61 # BGR2GRAY 62 63 gris = BGR2GRAY (IMG) 64 65 # relieve filtrado 66 67 OUT = emboss_filter (gris, K_size = 3 ) 68 69 # Guardar resultado 70 71 cv2.imwrite ( " out.jpg " , hacia fuera) 72 73 cv2.imshow ( " resultado " , hacia fuera) 74 75 cv2.waitKey (0) 76 77 cv2.destroyAllWindows ()
Tres resultados:
Puede ser visto, filtro graba en relieve puede mejorar efectivamente el contorno de la imagen.
Cuatro de referencia: