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} |
| 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 |
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)
