a=[ 1, 'Perro', 3.5]
Como vemos esta lista contiene tres datos de diferente tipo. Un entero, un cadena y un decimal.
El objeto array de numpy se parece en su forma a las listas pero solo permite tener un tipo de dato en la misma lista, por lo que pueden ser llamadas "listas homogéneas". Esto permite a python hacer cálculos a gran velocidad sobre los "arrays". Por otro lado numpy tiene funciones para manejo de álgebra linear, transformadas de Fourier y generación de números aleatorios.
La mejor forma para demostrar el funcionamiento de numpy es con ejemplos
- Creación de un vector
importo el modulo numpy y le digo que quiero llamarlo en mi programa como np osea que cuando llame una función de numpy debería comenzar con el prefijo np. de la misma manera como lo vengo haciendo con opencv que es el prefijo cv. También podría importarlo como "import numpy" pero me tocaría iniciar cada función escribiendo numpy.
Se puede apreciar que cree un array con la funcion array y le asigne 5 valores. Después imprimo el vector.
- Creación de una matriz
Es básicamente lo mismo. Solo ahí que poner atención en los corchetes para definir una matriz.
- Seleccionar un elemento de la matriz
el índice es muy sencillo. Primero se escribe la fila y después la columna. En numpy las índices comienzan desde cero.
Numpy tiene muchísimas funciones para el manejo de matrices las cuales son explicadas en detalle aquí.
Cuando leí que OpenCV desde la versión 2.2 trataba las imágenes como matrices numpy, pensé de inmediato que podría manejar las imágenes mas fácilmente, y no estaba equivocado. ( recordar que una imagen digital es una matriz de 3 dimensiones. En una imagen de color un plano es para el color rojo, otro para el verde y el otro para el azul. En una imagen en escala de grises solo se tiene un plano)
Voy a mostrar un par de pruebas que hice para comenzar a trabajar con numpy. Pero las posibilidades que abre esta nueva opción son muchísimas. Sera cuestión de probar.
_____________________________________________________________________
Este código me muestra lo que hay en el pixel [10,10] de la imagen el cual se ve claramente que es blanco y como se esperaba, en ese pixel hay 3 valores uno para cada color que compone el pixel.
_______________________________________________________________________
En este ejemplo creo 2 matrices. Las dos son de 200x200 pixeles pero una es llenada con unos y otra con ceros mediante las funciones ones y zeros respectivamente. Las muestro y en las dos imprimo el valor en el pixel 10,10. Como se ve a diferencia de la anterior imagen, estas solo tienen un valor en el pixel, a diferencia del otro que tenia 3 valores. Esto es debido a que las matrices que creen son unidimensionales y no imágenes RGB.
_______________________________________________________________________
Estos ejemplos sencillos permiten ver la versatilidad que le agrega la inclusión de numpy a opencv. Ahora solo queda seguir probando y encontrando muchas mas opciones.
No hay comentarios:
Publicar un comentario