Está en la página 1de 1

Manipulación de Pixeles

Importar librerías
In [22]: from matplotlib import pyplot as plt
import cv2

Función para transformar imagen de BGR a RGB


In [23]: def mostrar_imagenRGB(title, imagen):
imagen = cv2.cvtColor(imagen, cv2.COLOR_BGR2RGB)
plt.imshow(imagen)
plt.title(title)
plt.grid(False)
plt.show()

Obtención de pixeles a través de diccionario


In [24]: arg = {
"imagen": ".\\RepoMyImages\\patamon.png"
}

In [25]: # cargamos la imagen y sus dimension (alto y ancho)


#mostramos la imagen
imagen = cv2.imread(arg["imagen"])
imagen.shape

(1080, 1404, 3)
Out[25]:

In [26]: (altura, anchura) = imagen.shape[:2]


mostrar_imagenRGB("Patamon", imagen)

In [27]: #Ahora mostramos la imagen en formato BGR


plt.imshow(imagen)
plt.show()

In [28]: print(f'La altura de la imagen de patamon es {altura}')


print(f'La anchura de la imagen de patamon es {anchura}')

La altura de la imagen de patamon es 1080


La anchura de la imagen de patamon es 1404

Función para saber el formato RGB de un pixel de la imagen


In [29]: def mostrar_pixel(imagen,cord_y, cord_x):
(b,g,r) = imagen[cord_y,cord_x]
print("Pixel en '(%d,%d)' - Rojo: %d, Verde: %d, Azul: %d" % (cord_y, cord_x, r,g,b))

In [32]: mostrar_pixel(imagen, 200, 250)


mostrar_pixel(imagen, 0, 0)
mostrar_pixel(imagen, 945, 700)

Pixel en '(200,250)' - Rojo: 228, Verde: 154, Azul: 38


Pixel en '(0,0)' - Rojo: 255, Verde: 255, Azul: 255
Pixel en '(945,700)' - Rojo: 68, Verde: 93, Azul: 100

In [31]: new_image_ul = imagen[0:540, 0:702]


mostrar_imagenRGB("Esquina superior izquierda", new_image_ul)

In [33]: #Creamos nuevas posiciones de capturas de imagen


new_image_ur = imagen[:540,702:]
new_image_ll = imagen[540:,:702]
new_image_lr = imagen[540:,702:]

In [35]: mostrar_imagenRGB("Esquina superior derecha", new_image_ur)

In [36]: mostrar_imagenRGB("Esquina inferior izquierda", new_image_ll)

In [37]: mostrar_imagenRGB("Esquina inferior derecha", new_image_lr)

In [38]: #Cambiaremos el color a algunos pixeles


imagencpy = imagen
imagencpy[:300,:200] = (34,50,44)
plt.imshow(imagencpy)
plt.title("Modificando ciertos pixeles")
plt.show()

In [39]: #"Guardamos la imagen"


cv2.imwrite("patamonAzul_PixelesModificados1.png", imagencpy)
imagencpy = cv2.cvtColor(imagencpy, cv2.COLOR_BGR2RGB)
cv2.imwrite("patamonAzul_PixelesModificados2.png", imagencpy)
#Nos damos cuenta que la funcion imwrite ya transforma el formato BGR a RGB, y viceversa

True
Out[39]:

También podría gustarte