En este tutorial, presentaremos oficialmente los tres métodos de escalado que se introdujeron en el tutorial Introducción al escalado.
Cada método tiene sus propias ventajas y desventajas. Comenzaremos hablando de la replicación de píxeles.
Esto también se conoce como interpolación de vecino más cercano. Como sugiere el nombre, en este método simplemente estamos copiando píxeles adyacentes. Como comentamos en el tutorial de muestreo, la escala no es más que aumentar la cantidad de muestras o píxeles. Este algoritmo funciona de la misma manera.
En este método, creamos nuevos píxeles a partir de los píxeles ya dados. Cada píxel se replica en este método n veces fila y columna, y se obtiene una imagen ampliada. Es tan simple.
Si tiene una imagen de 2 filas y 2 columnas y desea duplicarla o duplicarla mediante la replicación de píxeles, aquí le mostramos cómo hacerlo.
Para una mejor comprensión, la imagen se tomó como una matriz con los valores de los píxeles de la imagen.
uno | 2 |
3 | cuatro |
La imagen de arriba tiene dos filas y dos columnas, primero la ampliaremos fila por fila.
Cuando lo escalamos fila por fila, simplemente copiamos los píxeles de las filas en una nueva celda adyacente.
He aquí cómo hacerlo.
uno | uno | 2 | 2 |
3 | 3 | cuatro | cuatro |
Como puede ver en la matriz anterior, cada píxel se duplica dos veces en filas.
El siguiente paso es replicar cada columna de píxeles, simplemente copiaremos el píxel de la columna a la nueva columna adyacente o justo debajo de ella.
He aquí cómo hacerlo.
uno | uno | 2 | 2 |
uno | uno | 2 | 2 |
3 | 3 | cuatro | cuatro |
3 | 3 | cuatro | cuatro |
Como puede ver en el ejemplo anterior, la imagen original de 2 filas y 2 columnas se convirtió en 4 filas y 4 columnas después de escalar. Esto significa que la nueva imagen tiene el tamaño
(Filas de la imagen original * factor de escala, columnas de la imagen original * factor de escala)
Una de las ventajas de esta técnica de escalado es que es muy sencilla. Solo necesitas copiar los píxeles y nada más.
La desventaja de este método es que la imagen se ha ampliado, pero el resultado es muy borroso. Y a medida que aumentaba el factor de zoom, la imagen se volvía cada vez más borrosa. Esto eventualmente resultará en una imagen completamente borrosa.
Otro método de escalado es el método de retención de orden cero. Esto también se conoce como aumento de 2x. Porque solo puede duplicar su tamaño. En el siguiente ejemplo, veremos por qué hace esto.
En el método de retención de orden cero, seleccionamos dos elementos adyacentes de las filas respectivamente, luego los agregamos, dividimos el resultado por dos y colocamos su resultado entre esos dos elementos. Primero hacemos esta fila y luego esta columna.
Tomemos una imagen de 2 filas y 2 columnas y aumentemos dos veces usando el orden cero.
uno | 2 |
3 | cuatro |
Primero haremos zoom por filas y luego por columnas.
uno | uno | 2 |
3 | 3 | cuatro |
Cuando tomamos los dos primeros números, (2 + 1) = 3, y luego los dividimos entre 2, obtenemos 1.5, que es aproximadamente 1. El mismo método se aplica en la línea 2.
uno | uno | 2 |
2 | 2 | 3 |
3 | 3 | cuatro |
Tomamos los dos valores de píxeles adyacentes de la columna, que son 1 y 3. Los sumamos y obtenemos 4. Luego, 4 se divide entre 2 y obtenemos 2, que encaja entre ellos. El mismo método se aplica a todas las columnas.
Como puede ver, las dimensiones de la nueva imagen son 3 x 3, mientras que las dimensiones de la imagen original son 2 x 2. Esto significa que las dimensiones de la nueva imagen se basan en la siguiente fórmula.
(2 (número de filas) menos 1) X (2 (número de columnas) menos 1)
Una de las ventajas de este método de escalado es que no produce una imagen tan borrosa en comparación con el método de interpolación del vecino más cercano. Pero también tiene la desventaja de que solo puede funcionar con la potencia 2. Esto se puede demostrar aquí.
Considere la imagen de arriba con 2 filas y 2 columnas. Si necesitamos aumentarlo en un factor de 6 usando el método de retención de orden cero, no podemos hacer eso. Como muestra la fórmula.
Solo podía acercar 2, 2, 4, 8, 16, 32 y así sucesivamente.
Incluso si intenta aumentarlo, fracasará. Porque al principio, cuando lo duplicas, el resultado es el mismo que se muestra en la columna cuando el tamaño aumenta en 3×3. Luego, vuelve a acercar y obtiene las dimensiones iguales a 5 x 5. Ahora, si lo hace de nuevo, obtiene las dimensiones iguales a 9 x 9.
Considerando que, de acuerdo con su fórmula, la respuesta debería ser 11×11. Dado que (6 (2) menos 1) X (6 (2) menos 1) da 11 x 11.
K veces es el tercer método de escala que vamos a discutir. Este es uno de los algoritmos de escalado más avanzados analizados hasta ahora. Maneja tanto el escalado 2x como la replicación de píxeles. K en este algoritmo de escala significa el factor de escala.
Así es como funciona.
En primer lugar, debe tomar dos píxeles adyacentes, como lo hizo con un aumento de 2x. Entonces necesitas restar lo más pequeño de lo más grande. Llamamos a esta salida (OP).
Divida el resultado (OP) por el factor de escala (K). Ahora debe agregar el resultado al valor más pequeño y colocar el resultado entre esos dos valores.
Nuevamente agregue el valor de OP al valor que acaba de ingresar y vuelva a colocarlo junto al valor ingresado anteriormente. Debe hacer esto hasta que ponga valores k-1 en él.
Repita el mismo paso para todas las filas y columnas y obtendrá imágenes ampliadas.
Suponga que tiene una imagen de 2 filas y 3 columnas a continuación. Y tendrás que aumentarlo de tres a tres veces.
15 | treinta | 15 |
treinta | 15 | treinta |
K en este caso es 3. K = 3.
El número de valores para insertar es k-1 = 3-1 = 2.
Tomamos los dos primeros píxeles adyacentes. Que son 15 y 30.
Reste 15 de 30.30-15 = 15.
Dividir 15 entre k. 15 / k = 15/3 = 5. A esto lo llamamos OP. (Donde op es solo un nombre)
Agregue OP al número más bajo. 15 + OP = 15 + 5 = 20.
Vuelva a agregar OP a 20. 20 + OP = 20 + 5 = 25.
Hacemos esto 2 veces porque necesitamos insertar valores k-1.
Ahora repita este paso para los siguientes dos píxeles adyacentes. Esto se muestra en la primera tabla.
Después de insertar los valores, debe ordenar los valores insertados en orden ascendente para mantener la simetría entre ellos.
Esto se muestra en la segunda tabla.
15 | 20 | 25 | treinta | 20 | 25 | 15 |
treinta | 20 | 25 | 15 | 20 | 25 | treinta |
El mismo procedimiento debe realizarse columna por columna. El procedimiento implica tomar los valores de dos píxeles vecinos y luego restar el más pequeño del más grande. Luego, después de eso, debes dividirlo por k. Guarde el resultado como OP. Agregue OP al más pequeño y luego agregue OP nuevamente al valor que aparece la primera vez que se agrega el OP. Inserte nuevos valores.
Esto es lo que obtuviste después de todo esto.
15 | 20 | 25 | treinta | 25 | 20 | 15 |
20 | 21 años | 21 años | 25 | 21 años | 21 años | 20 |
25 | 22 | 22 | 20 | 22 | 22 | 25 |
treinta | 25 | 20 | 15 | 20 | 25 | treinta |
La mejor manera de calcular la fórmula para las dimensiones de la nueva imagen es comparar las dimensiones de la imagen original y la imagen final. Las dimensiones de la imagen original eran 2 x 3. Y las dimensiones de la nueva imagen eran 4 x 7.
Entonces la fórmula es:
(K (número de filas menos 1) + 1) X (K (número de columnas menos 1) + 1)
Una de las claras ventajas del algoritmo de escalado de tiempo k es que puede calcular el escalado de cualquier factor que fuera el poder del algoritmo de replicación de píxeles, y también da el resultado mejorado (menos borroso) que era el poder del cero. método de mantenimiento de pedidos. Por tanto, incluye la potencia de dos algoritmos.
La única dificultad con este algoritmo es que debe ordenarse al final, lo que es un paso adicional y, por lo tanto, aumenta el costo computacional.
🚫