From 0b9d6aa4068dccdde3b3c12335dc0697fa7e04fb Mon Sep 17 00:00:00 2001 From: Jalil Varela Manjarres <varelaj@jupyterMiLAB> Date: Thu, 18 Feb 2021 23:29:29 -0500 Subject: [PATCH] Se agregaron unos ultimos comentarios para hacer el codigo mas legible --- Entrega.ipynb | 137 ++++--- Entrega.md | 1053 +++++++++++++++++++++++++------------------------ 2 files changed, 605 insertions(+), 585 deletions(-) diff --git a/Entrega.ipynb b/Entrega.ipynb index 8ed886c..a68d5fb 100644 --- a/Entrega.ipynb +++ b/Entrega.ipynb @@ -1,11 +1,22 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Jalil Varela Manjarres\n", + "\n", + "### En esta libreta se aprende a trabajar con imagenes en python, mediante la libreria de numpy, para ello, se reconoce la forma como se almacenan las imagenes y se entiende el funcionanmiento de cada canal que compone a la imagen(RGB), ademas se trabaja con un problema de optimizacion, en el cual se ajutan funciones gausianas a muchas estrellas para asi determinar el FHWM, por tal motivo se trata de buscar la mejor forma de escoger las estrellas mediante un procedimiento semi automatico." + ] + }, { "cell_type": "code", - "execution_count": 547, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ + "#Librerias que se van a utilizar\n", + "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import statistics as stat\n", @@ -14,26 +25,24 @@ ] }, { - "cell_type": "code", - "execution_count": 307, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "cielo = plt.imread('data/zapatocaImage.jpeg')" + "La imagen con la que se va a trabajar va a almecenar en la variable -cielo-" ] }, { "cell_type": "code", - "execution_count": 306, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<matplotlib.image.AxesImage at 0x7f4d6e37d518>" + "<matplotlib.image.AxesImage at 0x7f3ff8700ac8>" ] }, - "execution_count": 306, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, @@ -51,27 +60,28 @@ } ], "source": [ - "plt.imshow(cielo[:,:,:], cmap='gray')\n", - "\n" + "cielo = plt.imread('data/zapatocaImage.jpeg')\n", + "plt.imshow(cielo[:,:,:], cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "si se modifica un array hay que tener en cuenta que todos los array equivalentes a este tambien se modiicaran" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "El que se almacena en cielo guarda la imagen en 3 matrices canales correspondientes a la informacion del color rojo, verde y azul, si le pasamor a imshow solo una de estas tres matrices ella lo leera en la escala que crea conveniente\n", - "cielo[:,:,0]#rojo\n", + "- El que se almacena en cielo guarda la imagen en 3 matrices(canales) correspondientes a la informacion del color rojo, verde y azul, en la siguiente forma.\n", + "<vr>\n", + "\n", + "\n", + "- cielo[:,:,0]#rojo\n", + "\n", + "- cielo[:,:,1]#verde\n", "\n", - "cielo[:,:,1]#verde\n", + "- cielo[:,:,2]#azul\n", "\n", - "cielo[:,:,2]#azul\n" + "\n", + "- El comando Imshow lee estas 3 matrices e imprime la imagen, en caso de pasarle solo una array de 2 dimensiones, este leera la matriz en la escala que crea conveniente.\n", + "\n", + "\n" ] }, { @@ -85,9 +95,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Metodo 1\n", + "## Metodo 1\n", "\n", - "El primer metodo consiste en promediar estas tres matrices y luego normalizarlas, para trabajar mas facilmente en la escala de 0 a 1, por lo general cada los numeros van de 0 a 255 en intensidad." + "El primer metodo consiste en promediar estas tres matrices y trabajar solo con un arreglo en dos dimensiones. para trabajar mas facilmente en la escala de 0 a 1, por lo general cada los numeros van de 0 a 255 en intensidad." ] }, { @@ -120,19 +130,19 @@ ], "source": [ "#Se promedia las tres matrices de colores, casilla por casilla,\n", - "#para producir una unica matriz promediada, que se le asocia a cada pixel y se normalizan los valores\n", + "#seproduce una unica matriz promediada y se normalizan los valores(por lo general la escala\n", + "# va de 0 a 255)\n", "img=np.mean(cielo,axis=2)/255\n", - "#Se debe espificar escala de grises debido a que imshow rescala automaticamente la escala que sea mas conveniente\n", - "plt.imshow(img, cmap='gray')\n", - "#np.shape(img)" + "#Se debe espificar escala de grises debido a que imshow rescala automaticamente la escala que cre mas conveniente\n", + "plt.imshow(img, cmap='gray')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Metodo 2\n", - "El segundo metodo ajusta una escala mejor a la de grisis que asimila el ojo humano, para ello pondera la contribucion del rojo, el verde y el azul.\n", + "## Metodo 2\n", + "El segundo metodo ajusta una escala en la que el el ojo humano asimila mejor la escala de grises, para ello pondera la contribucion de los diferentes canalanes, el rojo, el verde y el azul y se utiliza la compresion Gamma.\n", "\n", "la referencia utilizada y la forma en que se deben ponderar se especifica en la siguiente referencia [https://e2eml.school/convert_rgb_to_grayscale.html]" ] @@ -146,7 +156,7 @@ "#Se trabaa sobre una copia de la imagen original para no modificarla\n", "cielomod=np.copy(cielo)/255\n", "\n", - "#Se se modifican los valores de las matrices de colore de acuerdo a la compresion Gamma\n", + "#Se se modifican los valores de las matrices de colores de acuerdo a la compresion Gamma\n", "\n", "#Rojo\n", "cielomod[:,:,0][cielomod[:,:,0]<=0.04055]=cielomod[:,:,0][cielomod[:,:,0]<=0.04055]/12.92\n", @@ -201,6 +211,7 @@ "\n", "#Se suman los valores ponderados\n", "cielomod[:,:,0]=cielomod[:,:,0]+cielomod[:,:,1]+cielomod[:,:,2]\n", + "\n", "#Se pinta la matriz correspondiente a la suma ponderada, especificando la escala de grises\n", "plt.imshow(cielomod[:,:,0],cmap='gray')" ] @@ -209,7 +220,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Comparacion" + "# Comparación" ] }, { @@ -241,9 +252,7 @@ } ], "source": [ - "\n", "fig, (ax1, ax2)=plt.subplots(1,2, figsize=(20, 10))\n", - "\n", "ax1.imshow(cielomod[:,:,0],cmap='gray')\n", "ax1.set_title('Metodo2')\n", "ax2.imshow(img,cmap='gray')\n", @@ -276,7 +285,7 @@ } ], "source": [ - "#Se recorta una estrella y se usan 25x25 pixeles de anchura\n", + "#Se recorta una estrella y se usan 25x25 pixeles de tamaño\n", "plt.imshow(img[540:565,650:675],cmap='gray')\n", "#Se almacena la estrella\n", "estrella=np.copy(img[540:565,650:675])" @@ -288,8 +297,11 @@ "metadata": {}, "outputs": [], "source": [ - "#Se crea una gaussiana\n", + "#Se crea una gaussiana \n", "def gauss2D(p,x,y):\n", + " \n", + "# donde p son los parametros que se busca optimizar\n", + "\n", " exponente = -((x-p[0])**2 + (y-p[1])**2) / (2*p[2]**2)\n", " z = p[3] * np.exp(exponente) + p[4]\n", " return z\n" @@ -317,7 +329,7 @@ "source": [ "#Se toman los parametros iniciales\n", "\n", - "# x0 y0 c, a , b-revisar como se definen los parametros de la gaussiana para ver el significado\n", + "# x0 y0 c, a , b. (revisar como se definen los parametros de la gaussiana para ver el significado)\n", "p0=[12,12,10,1,0]\n", "\n", "#Se crea un grilla de 25x25, correspondiente a las posiciones de cada pixel- correspondera al argumento de la funcion\n", @@ -378,7 +390,7 @@ "source": [ "# ¡Generalizacion del metodo a muchas estrellas!\n", "\n", - "Lo primero es definir una forma rapida de recortar las estrellas, en funcion de una cota minima de la luminosidad, el tamaño del recuadro que queremos y la imagen que se va a tomar. la llamamos con una posicion, correspondiente a que estrella queremos tomar, el resto de parametros y devuelve el array correspondiente a la estrella recortada,las posiciones y la imagen a pintar." + "Lo primero es definir una forma rapida de recortar las estrellas, en funcion de una cota minima de la luminosidad, el tamaño del recuadro que queremos y la imagen que se va a tomar. Esta funcion se llamara con una posicion que se le asignara a cada elemento que ella considere como estrella, y los parametros de luminosidad, tamaño y la imagen a utilizar y devuelve el array correspondiente a la estrella recortada, la posicion central de la estrella y la imagen recortada." ] }, { @@ -648,10 +660,15 @@ "def rev(tam,luminosidad,img):\n", " Estrellas={}\n", " i=0\n", + " \n", + " #Corre sobre el numero de estrellas que se tomaron como candidatas\n", " j=0\n", " N=len(buscarestrellas(i,tam,luminosidad,img)[1][1])\n", - " for i in np.arange(N):\n", " \n", + " # Se crea un loop que corra que en cada interaccion nos permita decidir si la estrella es una buena candidatta\n", + " for i in np.arange(N):\n", + " \n", + " #Se muestra la candida a ser estrella\n", " buscarestrellas(i,tam,luminosidad,img)[2]\n", " \n", " plt.show()\n", @@ -659,7 +676,6 @@ " \n", " respuesta=input('¿es un buena candidata?, responda con s/n o t si desea terminar')\n", " \n", - " \n", " if respuesta=='s':\n", " \n", " Estrellas[f'e{j}']=buscarestrellas(i,tam,luminosidad,img)[0]\n", @@ -669,6 +685,8 @@ " elif respuesta =='t':\n", " # Se pinta el numero de estrellas que se tomaron\n", " print(f'Se tomaron {j} estrellas')\n", + " \n", + " #Se retorna las estrellas almacenadas\n", " return Estrellas\n", " \n", " else: \n", @@ -1392,7 +1410,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Lo siguiente es crear un funcion que me imprima todas las caracteristicas estadisticas deseadas, en este caso, son la media, la mediana, la moda, la desviacion estandar y un histograma, toma la imagen como argumento, el tamaño, la luminosidad y Error que se esta utlizando para optimizarlas." + "Lo siguiente es crear un funcion que me imprima todas las **estadisticas** deseadas, en este caso, son la media, la mediana, la moda, la desviacion estandar y un histograma, toma la imagen como argumento, el tamaño, la luminosidad y Error que se esta utlizando para optimizarlas." ] }, { @@ -6190,7 +6208,7 @@ } ], "source": [ - "funcestrellas(rojo,10,0.95,Error)\n" + "funcestrellas(rojo,10,0.95,Error)" ] }, { @@ -8847,37 +8865,37 @@ "funcestrellas(verde,10,0.95,Error)" ] }, - { - "cell_type": "code", - "execution_count": 486, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modificacion para añadir la incertidumbre de la medida\n", "\n", - "La unica funcion que se debe ver modificada es la funcion de error, donde cada pixel ahora debe estar pesado por la incertidumbre(dividiendo), la inceidumbre de capa pixel la asociamos con la intensidad que recibe debido a que \n", - "-Intensidad= numero fotone/tiempo\n", - "-flujo= Intensidad/Area\n", - "donde en este caso el area esta reescalada a un solo pixel" + "La unica funcion que se debe ver modificada es la funcion de error, donde cada pixel ahora debe estar pesado por la incertidumbre(dividiendo), la incertidumbre de capa pixel la asociamos con la intensidad que recibe debido a que \n", + "\n", + "- Intensidad= numero fotone/tiempo\n", + "- flujo= Intensidad/Area\n", + "\n", + "En este caso el area de cada pixel se toma como 1" ] }, { "cell_type": "code", - "execution_count": 555, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Se debe modificar el error para que cada error tenga un peso dado por las incertidumbres\n", + "\n", "def Errormod(p,x,y,z):\n", + " \n", + " #incertidumbre de cada pixel\n", " sigma=np.sqrt(z)\n", + " \n", + " #funcion del modelo\n", " ymodel=gauss2D(p,x,y)\n", - "# ymodel=gaussvec(p,x,y)\n", - "# Cada pixel esta pesado por la intensidad que llego a ese punto, de esta forma se puede tener en cuenta la incertidumbre\n", + " \n", + "# se divide el error sobre la incertidumbre, de esta forma se puede tener en cuenta la incertidumbre\n", " error=(ymodel-z)/sigma\n", " return error.reshape(-1)\n" ] @@ -8886,7 +8904,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Se puede evaluar la misma funcion ya encontrada, unicamente cambiandole la funcion de error, asi podemos encontrar todas de nuevo incluyendo la incertidumbre\n", + "# Se puede evaluar la misma funcion ya encontrada, unicamente cambiandole la funcion de error, asi podemos encontrar todas las estrellas de nuevo incluyendo la incertidumbre\n", "\n", "Para el caso de la imagen en escala de grises obtenemos" ] @@ -11839,13 +11857,6 @@ "#Para guardar el notebook a .md\n", "! jupyter nbconvert --to markdown Entrega.ipynb" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/Entrega.md b/Entrega.md index 7397a4e..f527046 100644 --- a/Entrega.md +++ b/Entrega.md @@ -1,4 +1,11 @@ +# Jalil Varela Manjarres + +### En esta libreta se aprende a trabajar con imagenes en python, mediante la libreria de numpy, para ello, se reconoce la forma como se almacenan las imagenes y se entiende el funcionanmiento de cada canal que compone a la imagen(RGB), ademas se trabaja con un problema de optimizacion, en el cual se ajutan funciones gausianas a muchas estrellas para asi determinar el FHWM, por tal motivo se trata de buscar la mejor forma de escoger las estrellas mediante un procedimiento semi automatico. + + ```python +#Librerias que se van a utilizar + import numpy as np import matplotlib.pyplot as plt import statistics as stat @@ -6,55 +13,58 @@ import statistics as stat from scipy.optimize import leastsq ``` +La imagen con la que se va a trabajar va a almecenar en la variable -cielo- + ```python cielo = plt.imread('data/zapatocaImage.jpeg') +plt.imshow(cielo[:,:,:], cmap='gray') ``` -```python -plt.imshow(cielo[:,:,:], cmap='gray') -``` + <matplotlib.image.AxesImage at 0x7f3ff8700ac8> - <matplotlib.image.AxesImage at 0x7f4d6e37d518> + + + +- El que se almacena en cielo guarda la imagen en 3 matrices(canales) correspondientes a la informacion del color rojo, verde y azul, en la siguiente forma. +<vr> - - - +- cielo[:,:,0]#rojo + +- cielo[:,:,1]#verde +- cielo[:,:,2]#azul -si se modifica un array hay que tener en cuenta que todos los array equivalentes a este tambien se modiicaran -El que se almacena en cielo guarda la imagen en 3 matrices canales correspondientes a la informacion del color rojo, verde y azul, si le pasamor a imshow solo una de estas tres matrices ella lo leera en la escala que crea conveniente -cielo[:,:,0]#rojo +- El comando Imshow lee estas 3 matrices e imprime la imagen, en caso de pasarle solo una array de 2 dimensiones, este leera la matriz en la escala que crea conveniente. -cielo[:,:,1]#verde -cielo[:,:,2]#azul # Metodos para pasar a escala de grises -# Metodo 1 +## Metodo 1 -El primer metodo consiste en promediar estas tres matrices y luego normalizarlas, para trabajar mas facilmente en la escala de 0 a 1, por lo general cada los numeros van de 0 a 255 en intensidad. +El primer metodo consiste en promediar estas tres matrices y trabajar solo con un arreglo en dos dimensiones. para trabajar mas facilmente en la escala de 0 a 1, por lo general cada los numeros van de 0 a 255 en intensidad. ```python #Se promedia las tres matrices de colores, casilla por casilla, -#para producir una unica matriz promediada, que se le asocia a cada pixel y se normalizan los valores +#seproduce una unica matriz promediada y se normalizan los valores(por lo general la escala +# va de 0 a 255) img=np.mean(cielo,axis=2)/255 -#Se debe espificar escala de grises debido a que imshow rescala automaticamente la escala que sea mas conveniente +#Se debe espificar escala de grises debido a que imshow rescala automaticamente la escala que cre mas conveniente plt.imshow(img, cmap='gray') -#np.shape(img) + ``` @@ -70,22 +80,17 @@ plt.imshow(img, cmap='gray') -# Metodo 2 -El segundo metodo ajusta una escala mejor a la de grisis que asimila el ojo humano, para ello pondera la contribucion del rojo, el verde y el azul. +## Metodo 2 +El segundo metodo ajusta una escala en la que el el ojo humano asimila mejor la escala de grises, para ello pondera la contribucion de los diferentes canalanes, el rojo, el verde y el azul y se utiliza la compresion Gamma. la referencia utilizada y la forma en que se deben ponderar se especifica en la siguiente referencia [https://e2eml.school/convert_rgb_to_grayscale.html] -```python - -``` - - ```python #Se trabaa sobre una copia de la imagen original para no modificarla cielomod=np.copy(cielo)/255 -#Se se modifican los valores de las matrices de colore de acuerdo a la compresion Gamma +#Se se modifican los valores de las matrices de colores de acuerdo a la compresion Gamma #Rojo cielomod[:,:,0][cielomod[:,:,0]<=0.04055]=cielomod[:,:,0][cielomod[:,:,0]<=0.04055]/12.92 @@ -112,6 +117,7 @@ cielomod[:,:,2] =0.0722*cielomod[:,:,2] #Azul #Se suman los valores ponderados cielomod[:,:,0]=cielomod[:,:,0]+cielomod[:,:,1]+cielomod[:,:,2] + #Se pinta la matriz correspondiente a la suma ponderada, especificando la escala de grises plt.imshow(cielomod[:,:,0],cmap='gray') ``` @@ -125,17 +131,15 @@ plt.imshow(cielomod[:,:,0],cmap='gray') - + -# Comparacion +# Comparación ```python - fig, (ax1, ax2)=plt.subplots(1,2, figsize=(20, 10)) - ax1.imshow(cielomod[:,:,0],cmap='gray') ax1.set_title('Metodo2') ax2.imshow(img,cmap='gray') @@ -151,7 +155,7 @@ ax2.set_title('Metodo1') - + @@ -160,7 +164,7 @@ ax2.set_title('Metodo1') ```python -#Se recorta una estrella y se usan 25x25 pixeles de anchura +#Se recorta una estrella y se usan 25x25 pixeles de tamaño plt.imshow(img[540:565,650:675],cmap='gray') #Se almacena la estrella estrella=np.copy(img[540:565,650:675]) @@ -168,14 +172,17 @@ estrella=np.copy(img[540:565,650:675]) - + ```python -#Se crea una gaussiana +#Se crea una gaussiana def gauss2D(p,x,y): + +# donde p son los parametros que se busca optimizar + exponente = -((x-p[0])**2 + (y-p[1])**2) / (2*p[2]**2) z = p[3] * np.exp(exponente) + p[4] return z @@ -197,7 +204,7 @@ def Error(p,x,y,z): ```python #Se toman los parametros iniciales -# x0 y0 c, a , b-revisar como se definen los parametros de la gaussiana para ver el significado +# x0 y0 c, a , b. (revisar como se definen los parametros de la gaussiana para ver el significado) p0=[12,12,10,1,0] #Se crea un grilla de 25x25, correspondiente a las posiciones de cada pixel- correspondera al argumento de la funcion @@ -233,13 +240,13 @@ ax2.set_title('Imagen') - + # ¡Generalizacion del metodo a muchas estrellas! -Lo primero es definir una forma rapida de recortar las estrellas, en funcion de una cota minima de la luminosidad, el tamaño del recuadro que queremos y la imagen que se va a tomar. la llamamos con una posicion, correspondiente a que estrella queremos tomar, el resto de parametros y devuelve el array correspondiente a la estrella recortada,las posiciones y la imagen a pintar. +Lo primero es definir una forma rapida de recortar las estrellas, en funcion de una cota minima de la luminosidad, el tamaño del recuadro que queremos y la imagen que se va a tomar. Esta funcion se llamara con una posicion que se le asignara a cada elemento que ella considere como estrella, y los parametros de luminosidad, tamaño y la imagen a utilizar y devuelve el array correspondiente a la estrella recortada, la posicion central de la estrella y la imagen recortada. ```python @@ -264,7 +271,7 @@ x=buscarestrellas(1,10,0.9,img)[2] - + @@ -277,10 +284,15 @@ Lo siguiente es definir una forma en la cual podamos **testestear manualmente** def rev(tam,luminosidad,img): Estrellas={} i=0 + + #Corre sobre el numero de estrellas que se tomaron como candidatas j=0 N=len(buscarestrellas(i,tam,luminosidad,img)[1][1]) - for i in np.arange(N): + # Se crea un loop que corra que en cada interaccion nos permita decidir si la estrella es una buena candidatta + for i in np.arange(N): + + #Se muestra la candida a ser estrella buscarestrellas(i,tam,luminosidad,img)[2] plt.show() @@ -288,7 +300,6 @@ def rev(tam,luminosidad,img): respuesta=input('¿es un buena candidata?, responda con s/n o t si desea terminar') - if respuesta=='s': Estrellas[f'e{j}']=buscarestrellas(i,tam,luminosidad,img)[0] @@ -298,6 +309,8 @@ def rev(tam,luminosidad,img): elif respuesta =='t': # Se pinta el numero de estrellas que se tomaron print(f'Se tomaron {j} estrellas') + + #Se retorna las estrellas almacenadas return Estrellas else: @@ -322,7 +335,7 @@ Estrellas=rev(10,0.9,img) - + @@ -338,7 +351,7 @@ Estrellas=rev(10,0.9,img) - + @@ -354,7 +367,7 @@ Estrellas=rev(10,0.9,img) - + @@ -370,7 +383,7 @@ Estrellas=rev(10,0.9,img) - + @@ -383,7 +396,7 @@ Estrellas=rev(10,0.9,img) - + @@ -396,7 +409,7 @@ Estrellas=rev(10,0.9,img) - + @@ -412,7 +425,7 @@ Estrellas=rev(10,0.9,img) - + @@ -425,7 +438,7 @@ Estrellas=rev(10,0.9,img) - + @@ -485,323 +498,323 @@ verificacion(es,Estrellas) - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + -Lo siguiente es crear un funcion que me imprima todas las caracteristicas estadisticas deseadas, en este caso, son la media, la mediana, la moda, la desviacion estandar y un histograma, toma la imagen como argumento, el tamaño, la luminosidad y Error que se esta utlizando para optimizarlas. +Lo siguiente es crear un funcion que me imprima todas las **estadisticas** deseadas, en este caso, son la media, la mediana, la moda, la desviacion estandar y un histograma, toma la imagen como argumento, el tamaño, la luminosidad y Error que se esta utlizando para optimizarlas. ```python @@ -859,7 +872,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -875,7 +888,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -891,7 +904,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -907,7 +920,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -923,7 +936,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -939,7 +952,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -955,7 +968,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -968,7 +981,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -981,7 +994,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -997,7 +1010,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1013,7 +1026,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1026,7 +1039,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1039,7 +1052,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1055,7 +1068,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1071,7 +1084,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1087,7 +1100,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1103,7 +1116,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1119,7 +1132,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1132,7 +1145,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1145,7 +1158,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1158,7 +1171,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1171,7 +1184,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1184,7 +1197,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1197,7 +1210,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1210,7 +1223,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1226,7 +1239,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1239,7 +1252,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1252,7 +1265,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1265,7 +1278,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1281,7 +1294,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1297,7 +1310,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1313,7 +1326,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1329,7 +1342,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1342,7 +1355,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1355,7 +1368,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1368,7 +1381,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1381,7 +1394,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1397,7 +1410,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1410,7 +1423,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1423,7 +1436,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1436,7 +1449,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1449,7 +1462,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1462,7 +1475,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1475,7 +1488,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1488,7 +1501,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1504,7 +1517,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1520,7 +1533,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1536,7 +1549,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1552,7 +1565,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1568,7 +1581,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1584,7 +1597,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1597,7 +1610,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1610,7 +1623,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1626,7 +1639,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1642,7 +1655,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1655,7 +1668,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1668,7 +1681,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1684,7 +1697,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1697,7 +1710,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1710,7 +1723,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1723,7 +1736,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1736,7 +1749,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1749,7 +1762,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1762,7 +1775,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1775,7 +1788,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1788,7 +1801,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1801,7 +1814,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1814,7 +1827,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1827,7 +1840,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1840,7 +1853,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1853,7 +1866,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1866,7 +1879,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1879,7 +1892,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1892,7 +1905,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1905,7 +1918,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1918,7 +1931,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1931,7 +1944,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1944,7 +1957,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1960,7 +1973,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1973,7 +1986,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1986,7 +1999,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -1999,7 +2012,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2012,7 +2025,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2025,7 +2038,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2038,7 +2051,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2051,7 +2064,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2064,7 +2077,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2077,7 +2090,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2090,7 +2103,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2103,7 +2116,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2116,7 +2129,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2129,7 +2142,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2142,7 +2155,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2155,7 +2168,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2168,7 +2181,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2181,7 +2194,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2194,7 +2207,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2210,7 +2223,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2223,7 +2236,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2236,7 +2249,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2249,7 +2262,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2263,7 +2276,7 @@ funcestrellas(img,10,0.95,Error) - + @@ -2287,7 +2300,6 @@ azul=azul[:,:,2] ```python funcestrellas(rojo,10,0.95,Error) - ``` posicion de la estrella: y,x=(20, 609) @@ -2300,7 +2312,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2316,7 +2328,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2332,7 +2344,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2348,7 +2360,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2364,7 +2376,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2380,7 +2392,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2393,7 +2405,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2409,7 +2421,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2425,7 +2437,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2441,7 +2453,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2457,7 +2469,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2473,7 +2485,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2489,7 +2501,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2505,7 +2517,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2521,7 +2533,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2534,7 +2546,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2550,7 +2562,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2563,7 +2575,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2576,7 +2588,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2589,7 +2601,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2602,7 +2614,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2618,7 +2630,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2631,7 +2643,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2644,7 +2656,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2657,7 +2669,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2673,7 +2685,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2686,7 +2698,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2699,7 +2711,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2712,7 +2724,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2728,7 +2740,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2741,7 +2753,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2754,7 +2766,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2767,7 +2779,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2780,7 +2792,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2793,7 +2805,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2809,7 +2821,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2822,7 +2834,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2838,7 +2850,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2854,7 +2866,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2870,7 +2882,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2886,7 +2898,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2902,7 +2914,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2918,7 +2930,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2934,7 +2946,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2950,7 +2962,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2966,7 +2978,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2982,7 +2994,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -2998,7 +3010,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3014,7 +3026,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3030,7 +3042,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3046,7 +3058,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3062,7 +3074,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3075,7 +3087,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3091,7 +3103,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3107,7 +3119,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3120,7 +3132,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3133,7 +3145,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3146,7 +3158,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3159,7 +3171,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3175,7 +3187,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3191,7 +3203,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3204,7 +3216,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3217,7 +3229,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3230,7 +3242,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3246,7 +3258,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3259,7 +3271,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3272,7 +3284,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3285,7 +3297,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3301,7 +3313,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3314,7 +3326,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3330,7 +3342,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3343,7 +3355,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3356,7 +3368,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3372,7 +3384,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3385,7 +3397,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3401,7 +3413,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3414,7 +3426,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3430,7 +3442,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3443,7 +3455,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3456,7 +3468,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3472,7 +3484,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3485,7 +3497,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3498,7 +3510,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3511,7 +3523,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3527,7 +3539,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3540,7 +3552,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3553,7 +3565,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3566,7 +3578,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3579,7 +3591,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3592,7 +3604,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3605,7 +3617,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3619,7 +3631,7 @@ funcestrellas(rojo,10,0.95,Error) - + @@ -3641,7 +3653,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3657,7 +3669,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3673,7 +3685,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3689,7 +3701,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3702,7 +3714,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3715,7 +3727,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3731,7 +3743,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3747,7 +3759,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3760,7 +3772,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3773,7 +3785,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3786,7 +3798,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3802,7 +3814,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3815,7 +3827,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3828,7 +3840,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3841,7 +3853,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3854,7 +3866,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3867,7 +3879,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3880,7 +3892,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3893,7 +3905,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3906,7 +3918,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3922,7 +3934,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3938,7 +3950,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3951,7 +3963,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3964,7 +3976,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3977,7 +3989,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -3990,7 +4002,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4003,7 +4015,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4016,7 +4028,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4029,7 +4041,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4042,7 +4054,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4058,7 +4070,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4071,7 +4083,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4087,7 +4099,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4103,7 +4115,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4119,7 +4131,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4132,7 +4144,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4148,7 +4160,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4164,7 +4176,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4177,7 +4189,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4190,7 +4202,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4203,7 +4215,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4219,7 +4231,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4233,7 +4245,7 @@ funcestrellas(azul,10,0.95,Error) - + @@ -4254,7 +4266,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4270,7 +4282,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4286,7 +4298,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4302,7 +4314,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4318,7 +4330,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4334,7 +4346,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4347,7 +4359,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4360,7 +4372,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4376,7 +4388,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4392,7 +4404,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4405,7 +4417,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4418,7 +4430,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4434,7 +4446,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4447,7 +4459,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4463,7 +4475,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4479,7 +4491,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4492,7 +4504,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4508,7 +4520,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4521,7 +4533,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4537,7 +4549,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4553,7 +4565,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4566,7 +4578,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4579,7 +4591,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4592,7 +4604,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4608,7 +4620,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4621,7 +4633,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4634,7 +4646,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4647,7 +4659,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4660,7 +4672,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4673,7 +4685,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4686,7 +4698,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4699,7 +4711,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4715,7 +4727,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4731,7 +4743,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4747,7 +4759,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4763,7 +4775,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4776,7 +4788,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4792,7 +4804,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4808,7 +4820,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4821,7 +4833,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4834,7 +4846,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4847,7 +4859,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4860,7 +4872,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4873,7 +4885,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4886,7 +4898,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4899,7 +4911,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4915,7 +4927,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4928,7 +4940,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4941,7 +4953,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4957,7 +4969,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4970,7 +4982,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4983,7 +4995,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -4999,7 +5011,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5012,7 +5024,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5028,7 +5040,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5044,7 +5056,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5057,7 +5069,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5070,7 +5082,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5086,7 +5098,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5099,7 +5111,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5112,7 +5124,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5128,7 +5140,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5144,7 +5156,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5160,7 +5172,7 @@ funcestrellas(verde,10,0.95,Error) - + @@ -5174,36 +5186,38 @@ funcestrellas(verde,10,0.95,Error) - + +# Modificacion para añadir la incertidumbre de la medida -```python - -``` +La unica funcion que se debe ver modificada es la funcion de error, donde cada pixel ahora debe estar pesado por la incertidumbre(dividiendo), la incertidumbre de capa pixel la asociamos con la intensidad que recibe debido a que -# Modificacion para añadir la incertidumbre de la medida +- Intensidad= numero fotone/tiempo +- flujo= Intensidad/Area -La unica funcion que se debe ver modificada es la funcion de error, donde cada pixel ahora debe estar pesado por la incertidumbre(dividiendo), la inceidumbre de capa pixel la asociamos con la intensidad que recibe debido a que --Intensidad= numero fotone/tiempo --flujo= Intensidad/Area -donde en este caso el area esta reescalada a un solo pixel +En este caso el area de cada pixel se toma como 1 ```python #Se debe modificar el error para que cada error tenga un peso dado por las incertidumbres + def Errormod(p,x,y,z): + + #incertidumbre de cada pixel sigma=np.sqrt(z) + + #funcion del modelo ymodel=gauss2D(p,x,y) -# ymodel=gaussvec(p,x,y) -# Cada pixel esta pesado por la intensidad que llego a ese punto, de esta forma se puede tener en cuenta la incertidumbre + +# se divide el error sobre la incertidumbre, de esta forma se puede tener en cuenta la incertidumbre error=(ymodel-z)/sigma return error.reshape(-1) ``` -# Se puede evaluar la misma funcion ya encontrada, unicamente cambiandole la funcion de error, asi podemos encontrar todas de nuevo incluyendo la incertidumbre +# Se puede evaluar la misma funcion ya encontrada, unicamente cambiandole la funcion de error, asi podemos encontrar todas las estrellas de nuevo incluyendo la incertidumbre Para el caso de la imagen en escala de grises obtenemos @@ -5222,7 +5236,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5238,7 +5252,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5254,7 +5268,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5270,7 +5284,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5286,7 +5300,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5302,7 +5316,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5318,7 +5332,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5334,7 +5348,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5347,7 +5361,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5363,7 +5377,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5379,7 +5393,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5392,7 +5406,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5408,7 +5422,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5421,7 +5435,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5434,7 +5448,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5450,7 +5464,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5466,7 +5480,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5482,7 +5496,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5495,7 +5509,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5508,7 +5522,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5521,7 +5535,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5537,7 +5551,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5550,7 +5564,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5563,7 +5577,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5576,7 +5590,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5589,7 +5603,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5605,7 +5619,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5618,7 +5632,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5631,7 +5645,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5644,7 +5658,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5660,7 +5674,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5676,7 +5690,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5692,7 +5706,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5705,7 +5719,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5721,7 +5735,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5737,7 +5751,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5750,7 +5764,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5763,7 +5777,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5776,7 +5790,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5789,7 +5803,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5802,7 +5816,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5815,7 +5829,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5828,7 +5842,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5844,7 +5858,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5857,7 +5871,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5873,7 +5887,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5889,7 +5903,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5905,7 +5919,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5918,7 +5932,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5931,7 +5945,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5947,7 +5961,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5963,7 +5977,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5976,7 +5990,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -5992,7 +6006,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6005,7 +6019,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6021,7 +6035,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6034,7 +6048,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6050,7 +6064,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6063,7 +6077,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6076,7 +6090,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6089,7 +6103,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6102,7 +6116,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6115,7 +6129,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6128,7 +6142,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6141,7 +6155,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6154,7 +6168,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6167,7 +6181,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6180,7 +6194,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6193,7 +6207,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6206,7 +6220,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6219,7 +6233,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6235,7 +6249,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6248,7 +6262,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6261,7 +6275,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6274,7 +6288,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6287,7 +6301,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6300,7 +6314,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6313,7 +6327,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6326,7 +6340,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6339,7 +6353,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6352,7 +6366,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6365,7 +6379,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6378,7 +6392,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6391,7 +6405,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6404,7 +6418,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6417,7 +6431,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6430,7 +6444,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6443,7 +6457,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6456,7 +6470,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6469,7 +6483,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6482,7 +6496,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6495,7 +6509,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6508,7 +6522,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6521,7 +6535,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6534,7 +6548,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6547,7 +6561,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6560,7 +6574,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6573,7 +6587,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6586,7 +6600,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6602,7 +6616,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6615,7 +6629,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -6629,7 +6643,7 @@ funcestrellas(img,10,0.95,Errormod) - + @@ -7115,8 +7129,3 @@ funcestrellas(img,10,0.95,Errormod) [NbConvertApp] Making directory Entrega_files [NbConvertApp] Writing 150930 bytes to Entrega.md - - -```python - -``` -- GitLab