Filtro promedio

Un filtro promedio es una máscara de un tamaño especial, con píxeles de identidad dividido por el número de píxeles (cada píxel de la máscara se divide por el número de píxeles del filtro), se crean diferentes máscaras con tamaños distintos como 3x3, 5x5.


  1 1 1   \frac{1}{9} \frac{1}{9} \frac{1}{9}
\frac{1}{9} 1 1 1 = \frac{1}{9} \frac{1}{9} \frac{1}{9}
  1 1 1   \frac{1}{9} \frac{1}{9} \frac{1}{9}
3x3 Filtro promedio

  1 1 1 1 1
  1 1 1 1 1
\frac{1}{25} 1 1 1 1 1
  1 1 1 1 1
  1 1 1 1 1
5x5 Filtro promedio (Average filtro)

A veces, se incluyen ceros en los extremos de la figura para tener en cuenta los pixeles laterales, de lo contrario estos serán ignorados. En la programación se incluyen, en la matriz, los ceros en los extremos y se realizan los cálculos matemáticos para generar la convolución de las matrices.

0 0 0 0 0 0 0 0 0 0 0 0
0 2 255 248 253 254 254 241 255 248 0 0
0 250 226 232 120 255 245 224 255 255 252 0
0 249 235 132 12 115 255 255 216 241 247 0
0 255 25 189 114 206 255 0 10 253 36 0
0 234 246 247 225 255 247 255 203 235 212 0
0 255 253 221 201 246 248 174 67 146 251 0
0 187 239 139 108 174 55 208 167 216 218 0
0 117 191 213 173 61 25 6 197 255 0 0
0 169 243 246 233 196 68 140 249 14 223 0
0 242 30 223 8 255 0 242 26 226 38 0
0 0 0 0 0 0 0 0 0 0 0 0

El filtro máscara que se utiliza es una matriz de 3x3 que se sobrepone sobre la imagen, este puede ser de varios tamaños 3x3, 5x5, 9x9 se elige según la aplicación y el número de datos a filtra.

0 0 0 0 0 0 0 0 0 0 0 0
0 2 255 248 253 254 254 241 255 248 0 0
0 250 226 232 120 255 245 224 255 255 252 0
0 249 235 132 12 115 255 255 216 241 247 0
0 255 25 189 114 206 255 0 10 253 36 0
0 234 246 247 225 255 247 255 203 235 212 0
0 255 253 221 201 246 248 174 67 146 251 0
0 187 239 139 108 174 55 208 167 216 218 0
0 117 191 213 173 61 25 6 197 255 0 0
0 169 243 246 233 196 68 140 249 14 223 0
0 242 30 223 8 255 0 242 26 226 38 0
0 0 0 0 0 0 0 0 0 0 0 0

El proceso es multiplicar la máscara por la sección de la matriz seleccionada.

0 0 0   \frac{1}{9} \frac{1}{9} \frac{1}{9}
0 2 255 X \frac{1}{9} \frac{1}{9} \frac{1}{9}
0 250 226   \frac{1}{9} \frac{1}{9} \frac{1}{9}

Aplicar las reglas para multiplicar dos matrices:

(0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (2\times \frac{1}{9}) + (255\times \frac{1}{9}) + (0\times \frac{1}{9})+ (250\times \frac{1}{9}) + (226\times \frac{1}{9}) =

\0\text{ }+\text{ }0\text{ }+\text{ }0\text{ }+\text{ }0\text{ }+\text{ }0.22\text{ }+\text{ }28.33\text{ }+\text{ }0\text{ }+\text{ }27.78\text{ }+\text{ }25.11\text{ }=\mathbf{81}.\mathbf{44}\text{ }\approx \text{ }\mathbf{81}\text{ }\mathbf{variable}\text{ }\mathbf{uint8}\

El valor 0 se coloca en el centro de la máscara de 3x3 y se remplaza el número 81.

0 0 0 0 0 0 0 0 0 0 0 0
0 81 255 248 253 254 254 241 255 248 0 0
0 250 226 232 120 255 245 224 255 255 252 0
0 249 235 132 12 115 255 255 216 241 247 0
0 255 25 189 114 206 255 0 10 253 36 0
0 234 246 247 225 255 247 255 203 235 212 0
0 255 253 221 201 246 248 174 67 146 251 0
0 187 239 139 108 174 55 208 167 216 218 0
0 117 191 213 173 61 25 6 197 255 0 0
0 169 243 246 233 196 68 140 249 14 223 0
0 242 30 223 8 255 0 242 26 226 38 0
0 0 0 0 0 0 0 0 0 0 0 0

Desplazar la máscara un pixel a la derecha se realiza la convolución de las matrices hasta terminar con todos los pixeles.

0 0 0 0 0 0 0 0 0 0 0 0
0 81 255 248 253 254 254 241 255 248 0 0
0 250 226 232 120 255 245 224 255 255 252 0
0 249 235 132 12 115 255 255 216 241 247 0
0 255 25 189 114 206 255 0 10 253 36 0
0 234 246 247 225 255 247 255 203 235 212 0
0 255 253 221 201 246 248 174 67 146 251 0
0 187 239 139 108 174 55 208 167 216 218 0
0 117 191 213 173 61 25 6 197 255 0 0
0 169 243 246 233 196 68 140 249 14 223 0
0 242 30 223 8 255 0 242 26 226 38 0
0 0 0 0 0 0 0 0 0 0 0 0

Los datos que encierra la máscara de 3x3 de la matriz principal son los que se muestran.

0 0 0   \frac{1}{9} \frac{1}{9} \frac{1}{9}
2 255 248 X \frac{1}{9} \frac{1}{9} \frac{1}{9}
250 226 232   \frac{1}{9} \frac{1}{9} \frac{1}{9}

Aplicar las reglas para multiplicar dos matrices:

(0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (2\times \frac{1}{9}) + (255\times \frac{1}{9}) + (248\times \frac{1}{9}) + (250\times \frac{1}{9})+ (226\times \frac{1}{9}) + (232\times \frac{1}{9}) =

\0\text{ }+\text{ }0\text{ }+\text{ }0\text{ }+\text{ }0.22\text{ }+\text{ }28.33\text{ }+\text{ }27.56\text{ }+\text{ }27.78\text{ }+\text{ }25.11\text{ }+\text{ }27.78\text{ }=\mathbf{134}.\mathbf{78}\text{ }\approx \text{ }\mathbf{135}

Los datos que encierra la máscara de 3x3 de la matriz principal son los que se muestran.

0 0 0   \frac{1}{9} \frac{1}{9} \frac{1}{9}
255 248 253 X \frac{1}{9} \frac{1}{9} \frac{1}{9}
226 232 120   \frac{1}{9} \frac{1}{9} \frac{1}{9}

Aplicar las reglas para multiplicar dos matrices:

(0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (0\times \frac{1}{9}) + (255\times \frac{1}{9}) + (248\times \frac{1}{9}) + (253\times \frac{1}{9}) + (226\times \frac{1}{9})+ (232\times \frac{1}{9}) + (120\times \frac{1}{9}) =

\0\text{ }+\text{ }0\text{ }+\text{ }0\text{ }+\text{ }28.33\text{ }+\text{ }27.56\text{ }+\text{ }28.11\text{ }+\text{ }25.11\text{ }+\text{ }25.78\text{ }+\text{ }13.33\text{ }=\mathbf{148}.\mathbf{22}\text{ }\approx \text{ }\mathbf{148}

La matriz resultante es la siguiente, una vez realizado todos los cálculos y los cambios respectivos:

81 135 148 151 153 164 164 164 141 84
135 203 190 180 196 233 244 243 219 138
138 199 143 153 175 201 191 190 196 143
138 201 158 166 187 205 188 185 184 136
141 214 191 212 222 210 162 149 157 126
157 225 209 202 195 207 180 186 191 142
138 202 193 171 143 133 127 160 169 121
127 194 198 171 121 104 124 161 171 103
110 186 173 179 113 110 106 151 136 84
76 128 109 129 84 100 81 100 86 56

Realizar este procedimiento manualmente es dispendioso, para imágenes de muchos pixeles aplicar este filtro sería interminable. Matlab ya desarrolló la función fspecial que realiza todo este procedimiento en combinación con imfilter.

Código para aplicar el filtro promedio

(Para ampliar la imagen haga clic sobre ella)