Algoritmos de procesamiento de píxeles de uso común: cambiar el tamaño, voltear, rotar
Existen muchos algoritmos para el escalado de imágenes. El más simple es el algoritmo de interpolación más cercano, que calcula la relación de escala en función del tamaño de la imagen original y la imagen de destino, y luego calcula el píxel de destino en función del píxel original en función de la relación de escala. Este proceso naturalmente producirá un decimal. , y en este caso se utiliza el redondeo, y el punto más cercano es este punto.
Además, existe un algoritmo de interpolación bilineal.
La fórmula es la siguiente:
f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1 -u) vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)
donde U y V representan flotación coordenadas del punto Para la parte decimal, es obvio que cuanto más cerca del punto objetivo, mayor será el peso, lo que también es coherente con el punto objetivo. Cuanto más cerca del punto objetivo, mayor será el peso, lo que es coherente con el hecho de que el punto objetivo está más cerca del punto más cercano.
El cambio de tamaño de cv4j actualmente admite ambos algoritmos. Si observa el código fuente de la clase Resize, puede ver que hay dos constantes
que utilizan el algoritmo de interpolación más cercano para reducir la imagen original a 0,75 veces.
Utiliza un algoritmo de interpolación bilineal para ampliar la imagen original 2 veces.
Los resultados son los siguientes:
Flip significa voltear, también conocido como transformación espejo. Se puede dividir en espejo horizontal y espejo vertical. La duplicación horizontal utiliza el eje vertical de la imagen como eje central, intercambiando las mitades izquierda y derecha de la imagen; la duplicación vertical utiliza el eje horizontal de la imagen como eje central, intercambiando las mitades superior e inferior de la imagen.
El algoritmo de volteo es muy simple
Logra giros específicos hacia la izquierda y hacia la derecha
Logra giros específicos hacia arriba y hacia abajo
El efecto es el siguiente: siguiente:
La rotación de imágenes es el proceso de rotar una imagen en un cierto ángulo hasta un cierto punto para formar una nueva imagen. Eso sí, este punto suele ser el centro de la imagen. Dado que se gira según el centro, naturalmente tiene esta característica: antes y después de la rotación, la posición del punto alejado del centro permanece sin cambios.
La rotación de la imagen es una transformación geométrica de la imagen. El RGB de los píxeles de la imagen no cambia antes y después de la rotación, pero la posición de cada píxel cambia.
cv4j proporciona dos algoritmos de rotación: NormRotate y FastRotate
A continuación se muestra un ejemplo de NormRotate, que es muy sencillo de usar y gira la imagen 120 grados con un fondo rojo.
El efecto es el siguiente:
cv4j es una biblioteca de procesamiento de imágenes desarrollada por mí y gloomyfish. Está implementada en Java puro. Hemos separado una versión de Android y una versión de Java.
El procesamiento de píxeles es una de las funciones básicas de cv4j. Este artículo presentará tres transformaciones comunes. Podemos enriquecer la diversidad de datos de imágenes cambiando el tamaño, volteando y rotando imágenes.
Si desea ver artículos anteriores de esta serie, puede visitar la siguiente colección:
/nb/10401400.