Sabemos que OpenCV es muy utilizado para trabajar con imágenes y tiene una amplia gama de funciones para ello. Pero, ¿qué pasa si queremos procesar archivos de imagen sin usar ninguna biblioteca externa como OpenCV? Veamos cómo podemos hacer eso.
Escalado de imagen (usando la interpolación del vecino más cercano):
Interpolación del vecino más cercano — esta es la forma más fácil de interpolar. Este método simplemente determina el píxel vecino "más cercano" y toma un valor para su intensidad.
Considere una imagen pequeña cuyo ancho es w y la altura es — h que queremos cambiar de ancho p a ancho q, suponiendo que p > myq > norte. Ahora necesitamos dos constantes de escala:
scale_x = p / w scale_y = q / h
Ahora simplemente iteramos sobre todos los píxeles en la imagen de salida, refiriéndose a los píxeles originales que están copiando de. escalando nuestras variables de control con scale_x y scale_y, y redondeando los valores de índice escalados resultantes.
Representación visual:
La imagen tiene 3X3 píxeles (9 píxeles en total), ahora, si queremos aumentar el tamaño de la imagen a 6X6, entonces, de acuerdo con el algoritmo vecino más cercano, 6/3 (es decir, 2) píxeles deben tener el mismo valor RGB que el píxel de valor a la imagen original.
Programa de escalado de imágenes:
Salida: Escala de grises de la imagen:Usando la media método de valor, este método enfatiza la intensidad de un píxel, en lugar de mostrar de qué valores RGB está compuesto. Cuando calculamos el valor RGB promedio y le asignamos el valor RGB para un píxel, dado que el valor RGB del píxel es el mismo, no podrá crear ningún color, ya que todos los colores se generan debido a una proporción diferente de RGB valores, ya que en este caso la relación sería 1:1:1. Por lo tanto, la imagen renderizada se verá como una imagen gris. Representación visual: ![]() Programa de imágenes en escala de grises:
< clase de código = "palabra clave"> para
|
Salida:
Recortar una imagen:
Recortar básicamente elimina píxel no deseado. Esto se puede hacer colocando el píxel requerido en otra cuadrícula de imágenes, cuyo tamaño coincida con el requerido después de recortar.
Considere una imagen con un tamaño de 10 √ó 10 píxeles, y si solo queremos recortar el centro de una imagen con un tamaño de 4 √ó 4 píxeles, luego necesitamos recopilar valores de píxeles ‚Äã‚Äãdesde (10-4) / 2, comenzando en (3, 3) hasta 4 píxeles en la dirección x y 4 píxeles en la dirección y.
Representación visual:
Recortador de imágenes:
# usando matplotlib y numpy
import
matplotlib.image como img
import
numpy as npy
# leer imagen en variable m
m
=
# definición del tamaño de la imagen ancho (w) alto (h)
w, h
2
]
# tamaño de imagen requerido después de recortar
xNew
=
int
nuevaImagen
=
npy.zeros ([xNuevo, yNuevo,
for
i
en
rango
(
1
, xNew):
for
j
+
j]
# guarda la imagen
img.imsave (
`cropped.png`
< clase de código = "simple">, nueva imagen)
Salida: