diff --git a/starlight.ipynb b/Entrega.ipynb similarity index 96% rename from starlight.ipynb rename to Entrega.ipynb index f1e6987f60e4004f19433398634e16d8353db1ed..57e59c4a3991402b2125d44a2c61381a62435f92 100644 --- a/starlight.ipynb +++ b/Entrega.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -86,6 +86,7 @@ "$$\n", "\n", "donde $C$ representa cualquier canal RGB. Una vez linealizamos los datos, debemos realizar un promedio ponderado, pues la visión humana percibe con mayor intensidad el verde, y con menor intensidad el azul. De esta manera, la escala de grises $Y_{lineal}$ esta codificada por\n", + "\n", "$$\n", "Y_{\\mathrm {lineal} }=0.2126R_{\\mathrm {lineal} }+0.7152G_{\\mathrm {lineal} }+0.0722B_{\\mathrm {lineal} }.\n", "$$\n", @@ -135,7 +136,7 @@ { "data": { "text/plain": [ - "<matplotlib.image.AxesImage at 0x7fc7f0416a20>" + "<matplotlib.image.AxesImage at 0x7f68154c4be0>" ] }, "execution_count": 6, @@ -176,16 +177,16 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<matplotlib.image.AxesImage at 0x7fc7c5d7cc18>" + "<matplotlib.image.AxesImage at 0x7f67f00c97f0>" ] }, - "execution_count": 132, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, @@ -207,8 +208,10 @@ "portion = graySky[280:420,400:650]\n", "stars=[portion[85:105,40:60],portion[20:30,73:85],\n", " portion[28:45,220:235],portion[114:123,218:226],\n", - " portion[55:65,135:145],portion[70:80,135:145],\n", - " portion[80:89,148:156],portion[42:50,161:170]]\n", + " portion[55:65,135:145],portion[67:76,142:152],\n", + " portion[80:89,148:156],portion[42:50,161:170],\n", + " portion[9:17,190:200],portion[37:44,209:216],\n", + " portion[78:85,156:163],portion[20:28,232:240]]\n", "\n", "fig2, ax2= subplots(nrows=1, ncols=2,figsize=(14,4))\n", "\n", @@ -236,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 176, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -261,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -270,7 +273,7 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ @@ -301,7 +304,7 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -337,6 +340,7 @@ "metadata": {}, "source": [ "Finalmente, convertimos los datos del ajuste para obtener el FWHM (**F**ull **W**idth at **H**alf **M**aximum), sabiendo que para la Gaussiana\n", + "\n", "$$\n", "FWHM = 2\\sqrt{2s\\ln 2}.\n", "$$\n", @@ -346,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -357,12 +361,12 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 648x432 with 1 Axes>" ] @@ -382,16 +386,16 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 76, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "El promedio es 5.932\n", - "La mediana es 3.335\n", - "La desviación estándar es 5.851\n" + "El promedio es 3.310\n", + "La mediana es 3.051\n", + "La desviación estándar es 1.089\n" ] } ], @@ -409,26 +413,26 @@ "metadata": {}, "source": [ "### Parte final\n", - "Realizamos todo de nuevo pero usando el canal azul, ya que es el que menos peso tiene en la conversión a escala de grises. En este caso obviamos la mayorÃa de figuras, y mostramos directamente los resultados estadÃsticos. Observamos en general Gaussianas más anchas, y una acentuación de los extremos atÃpicos." + "Realizamos todo de nuevo pero usando el canal azul, ya que es el que menos peso tiene en la conversión a escala de grises. En este caso obviamos la mayorÃa de figuras, y mostramos directamente los resultados estadÃsticos. Observamos en general Gaussianas más anchas, y una acentuación de los datos extremales." ] }, { "cell_type": "code", - "execution_count": 193, + "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "El promedio es 10.202\n", - "La mediana es 4.170\n", - "La desviación estándar es 15.044\n" + "El promedio es 3.871\n", + "La mediana es 3.626\n", + "La desviación estándar es 1.461\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 648x432 with 1 Axes>" ] @@ -445,8 +449,10 @@ "portion = blueSky[280:420,400:650]\n", "stars=[portion[85:105,40:60],portion[20:30,73:85],\n", " portion[28:45,220:235],portion[114:123,218:226],\n", - " portion[55:65,135:145],portion[70:80,135:145],\n", - " portion[80:89,148:156],portion[42:50,161:170]]\n", + " portion[55:65,135:145],portion[67:76,142:152],\n", + " portion[80:89,148:156],portion[42:50,161:170],\n", + " portion[9:17,190:200],portion[37:44,209:216],\n", + " portion[78:85,156:163],portion[20:28,232:240]]\n", "\n", "results = []\n", "\n", @@ -477,6 +483,27 @@ "print(\"El promedio es \"+ '{:.3f}'.format(avg)+\"\\nLa mediana es \"+ \"{:.3f}\".format(med)\n", " + \"\\nLa desviación estándar es \"+ \"{:.3f}\".format(dev))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Entrega.md b/Entrega.md new file mode 100644 index 0000000000000000000000000000000000000000..99c0d1d043023f68aa89d9119e588ab5da7cd0fd --- /dev/null +++ b/Entrega.md @@ -0,0 +1,338 @@ +Felipe Reyes Osorio (@reyesf) + +# Ejercicio 1 + +Comenzamos importando tres librerÃas importantes: numpy, matplotlib, y PIL.Image. Esta última la usamos exclusivamente para leer la imagen como un arreglo de numpy de dimensión (789,1184,3). Las primeras dos denotan las coordenadas del pixel, mientras que la tercera, el canal o color RGB. Los elementos del arreglo codifican la intensidad en escala de 0 a 1. + +Con `imshow` mostramos cada canal por separado + + +```python +import numpy as np +from PIL import Image + +from matplotlib.pyplot import * +from mpl_toolkits.mplot3d import Axes3D +``` + + +```python +sky = np.array(Image.open("./data/zapatocaImage.jpeg")) + +sky.shape +``` + + + + + (789, 1184, 3) + + + + +```python +fig, axes= subplots(nrows=1, ncols=3,figsize=(16,10)) + +channels = ["Reds","Greens", "Blues"] + +for i in range(3): + axes[i].title.set_text(channels[i]) + axes[i].imshow(sky[:,:,i], cmap=channels[i]+"_r") +``` + + + + + + + +Ahora, para convertir a escala de grises se podrÃa realizar el promedio de los tres canales. Sin embargo, este método no preserva la intensidad lumÃnica percibida. Para lograr una conversión más fiel a la realidad debemos primero linealizar los datos de cada canal, pues al ser codificados se les aplica un filtro, tal que +$$ +C_{\mathrm {lineal} }={\begin{cases}{\frac {C_{\mathrm {filtro} }}{12.92}},&{\text{si }}C_{\mathrm {filtro} }\leq 0.04045\\\left({\frac {C_{\mathrm {filtro} }+0.055}{1.055}}\right)^{2.4},&{\text{de lo contrario}}\end{cases}} +$$ + +donde $C$ representa cualquier canal RGB. Una vez linealizamos los datos, debemos realizar un promedio ponderado, pues la visión humana percibe con mayor intensidad el verde, y con menor intensidad el azul. De esta manera, la escala de grises $Y_{lineal}$ esta codificada por + +$$ +Y_{\mathrm {lineal} }=0.2126R_{\mathrm {lineal} }+0.7152G_{\mathrm {lineal} }+0.0722B_{\mathrm {lineal} }. +$$ + +Para guardar una imagen en escala de grises usando un formato de tres canales habrÃa que aplicar la inversa del linealizador. Sin embargo, para nuestros propósitos es suficiente con graficar los datos a esta altura del proceso. Para más información, ver <a href="https://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale">este artÃculo</a>. + +Teniendo todo esto en cuenta, definimos la función `linearizer` que quita el filtro de los canales individuales, y usamos `np.vectorize` para poder aplicársela a un arreglo de numpy. Luego definimos otra función, `grayScaler`, que linealiza cada canal, y realiza la suma ponderada apropiada. Adicionalmente, tiene un parámetro `naive` que permite realizar la transformación con el promedio simple (sin linealizar y sin ponderar). Graficamos ambas para mostrar la diferencia: se nota como el método más sofisticado da mejores resultados. + + +```python +def linearizer(x): + if x<=0.04045: return x/12.92 + else: return ((x+0.055)/1.055)**2.4 + +linearizer = np.vectorize(linearizer) +``` + + +```python +def grayScaler(mat, naive=False): + copyMat=np.zeros(mat[:,:,1].shape) + coefs=[0.2126,0.7152,0.0722] + if naive: + for chan in range(3): + copyMat += 0.333333*mat[:,:,chan] + return copyMat + else: + for chan in range(3): + copyMat += coefs[chan]*linearizer(mat[:,:,chan]) + return copyMat + +``` + + +```python +fig1, ax1= subplots(nrows=1, ncols=2,figsize=(15,10)) + +ax1[0].title.set_text("Método sofisticado") +ax1[1].title.set_text("Método sencillo") + +ax1[1].imshow(grayScaler(sky, naive=True), cmap="Greys_r") +ax1[0].imshow(grayScaler(sky), cmap="Greys_r") +``` + + + + + <matplotlib.image.AxesImage at 0x7f68154c4be0> + + + + + + + + + +Guardamos la información de la imagen en blanco y negro en la variable `graySky`, y seleccionamos una porción del cielo que contenga varias estrellas brillantes. El objetivo es estudiar ocho estrellas aquà guardadas pues todas estarán sujetas a condiciones aproximadamente iguales. Las estrellas seleccionadas se guardan en la lista `stars`, de manera que el punto más brillante quede cerca del centro de la imagen. + +La porción de cielo escogida se muestra a continuación + + +```python +graySky = grayScaler(sky) +portion = graySky[280:420,400:650] +stars=[portion[85:105,40:60],portion[20:30,73:85], + portion[28:45,220:235],portion[114:123,218:226], + portion[55:65,135:145],portion[67:76,142:152], + portion[80:89,148:156],portion[42:50,161:170], + portion[9:17,190:200],portion[37:44,209:216], + portion[78:85,156:163],portion[20:28,232:240]] + +fig2, ax2= subplots(nrows=1, ncols=2,figsize=(14,4)) + +ax2[0].title.set_text("Porción de cielo") +ax2[1].title.set_text("Estrella ejemplo stars[2]") + +ax2[0].imshow(portion, "Greys_r") +ax2[1].imshow(stars[2], "Greys_r") +``` + + + + + <matplotlib.image.AxesImage at 0x7f67f00c97f0> + + + + + + + + + +Ahora definimos la función Gaussiana que se busca ajustar, y la función que calcula los errores. La primera, `gauss`, toma de argumentos coordenadas $x$ y $y$, además de una tupla de `params` organizada de esta manera: +* ($x_0$, $y_0$, $s$, $c$, $A$) + +y retorna +$$ +A\cdot gauss = e^{-(x^2+y^2)/2s^2}+c. +$$ + +La función `error` es sencilla, solo vale la pena mencionar que se debe reducir la dimensión del arreglo de errores con la función `flatten()`. + + +```python +def gauss(params,x, y): + x0,y0=params[1],params[0] + dis=(x-x0)**2+(y-y0)**2 + return params[4]*np.exp(-0.5*dis**2/params[2]**2)+params[3] + +def error(tpl, x,y, mat): + er = gauss(tpl, x,y)-mat + return er.flatten() +``` + +Ahora importamos la función `least_squares` de SciPy; esta es más recomendable que `leastsq` pues en funciona en casos más generales y complejos, además de ser una versión más reciente. + +Hacemos un bucle que itera sobre cada estrella en la lista `stars`. Los detalles del loop se dan en los comentarios; al final se obtiene una lista `best` con los resultados de la optimización de cada estrella. + + +```python +from scipy.optimize import least_squares +``` + + +```python +results = [] + +for item in stars: # Iteramos sobre cada estrella. + Y=np.arange(len(item[:,0])) + X=np.arange(len(item[0,:])) # Definimos un meshgrid con las + # mismas dimensiones de la estrella + X,Y=np.meshgrid(X,Y) # en cuestión. + + inix,iniy = np.where(item == np.amax(item)) # Calculamos el centro de la imagen + # para usar las coordenadas como centro + p0 = (inix[0], iniy[0], 5.,0.1, np.amax(item)) # de la Gaussiana, y llenamos el vector + # de condiciones iniciales + + best = least_squares(error, p0, args = (X,Y, item)) # Le pasamos al optimizador los errores + # comparando con los datos normalizados. + results.append(best) +``` + +Mostramos los resultados de la estrella `star[2]` como ejemplo: los contornos representan la función de mejor ajuste. + + +```python +Y=np.arange(len(stars[2][:,0])) +X=np.arange(len(stars[2][0,:])) + +X,Y=np.meshgrid(X,Y) + +fig3, ax3= subplots(figsize=(8,6)) + +im1 = ax3.imshow(stars[2], "Greys_r") +im2 = ax3.contour(X,Y, gauss(results[2].x, X,Y), cmap="summer_r") + +cbar_im1 = colorbar(im1) +cbar_im2 = colorbar(im2) +``` + + + + + + + +Finalmente, convertimos los datos del ajuste para obtener el FWHM (**F**ull **W**idth at **H**alf **M**aximum), sabiendo que para la Gaussiana + +$$ +FWHM = 2\sqrt{2s\ln 2}. +$$ + +Con estos datos realizamos un histograma y calculamos la media, mediana, y desviación estándar. + + +```python +fwhm = np.array([item.x[2] for item in results]) + +fwhm = 2*np.sqrt(2*fwhm*np.log(2)) +``` + + +```python +fig4, ax4=subplots(figsize=(9,6)) +ylabel("Frecuencia", fontsize=20) +xlabel("FWHM", fontsize=20) +n1, bins1, patches1=hist(fwhm, 10, alpha=0.6) +``` + + + + + + + + +```python +avg = np.mean(fwhm) +med = np.median(fwhm) +dev = np.std(fwhm) + +print("El promedio es "+ '{:.3f}'.format(avg)+"\nLa mediana es "+ "{:.3f}".format(med) + + "\nLa desviación estándar es "+ "{:.3f}".format(dev)) +``` + + El promedio es 3.310 + La mediana es 3.051 + La desviación estándar es 1.089 + + +### Parte final +Realizamos todo de nuevo pero usando el canal azul, ya que es el que menos peso tiene en la conversión a escala de grises. En este caso obviamos la mayorÃa de figuras, y mostramos directamente los resultados estadÃsticos. Observamos en general Gaussianas más anchas, y una acentuación de los datos extremales. + + +```python +blueSky = sky[:,:,2] + +portion = blueSky[280:420,400:650] +stars=[portion[85:105,40:60],portion[20:30,73:85], + portion[28:45,220:235],portion[114:123,218:226], + portion[55:65,135:145],portion[67:76,142:152], + portion[80:89,148:156],portion[42:50,161:170], + portion[9:17,190:200],portion[37:44,209:216], + portion[78:85,156:163],portion[20:28,232:240]] + +results = [] + +for item in stars: + Y=np.arange(len(item[:,0])) + X=np.arange(len(item[0,:])) + + X,Y=np.meshgrid(X,Y) + + inix,iniy = np.where(item == np.amax(item)) + p0 = (inix[0], iniy[0], 5.,0.1, np.amax(item)) + + best = least_squares(error, p0, args = (X,Y, item)) + results.append(best) + +fwhm = np.array([item.x[2] for item in results]) +fwhm = 2*np.sqrt(2*fwhm*np.log(2)) + +fig5, ax5=subplots(figsize=(9,6)) +ylabel("Frecuencia", fontsize=20) +xlabel("FWHM (Solo azul)", fontsize=20) +n1, bins1, patches1=hist(fwhm, 10, alpha=0.6) + +avg = np.mean(fwhm) +med = np.median(fwhm) +dev = np.std(fwhm) + +print("El promedio es "+ '{:.3f}'.format(avg)+"\nLa mediana es "+ "{:.3f}".format(med) + + "\nLa desviación estándar es "+ "{:.3f}".format(dev)) +``` + + El promedio es 3.871 + La mediana es 3.626 + La desviación estándar es 1.461 + + + + + + + + + +```python + +``` + + +```python + +``` + + +```python + +``` diff --git a/output_16_0.png b/output_16_0.png new file mode 100644 index 0000000000000000000000000000000000000000..dd4b88353bc6b23b45a43cb857ba4adc5a0374d2 Binary files /dev/null and b/output_16_0.png differ diff --git a/output_19_0.png b/output_19_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0944115daac0ba18764320a936e1018e3f08c8be Binary files /dev/null and b/output_19_0.png differ diff --git a/output_22_1.png b/output_22_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e23ad457462071b9a1ac3b69468722f8cf6ea0a2 Binary files /dev/null and b/output_22_1.png differ diff --git a/output_3_0.png b/output_3_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea59e52417e533f8a4341b0bfff18e6e4a93d18 Binary files /dev/null and b/output_3_0.png differ diff --git a/output_7_1.png b/output_7_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dc13383a0c00337a67175e168e348698b025eaff Binary files /dev/null and b/output_7_1.png differ diff --git a/output_9_1.png b/output_9_1.png new file mode 100644 index 0000000000000000000000000000000000000000..065451b36a0d6f150d30e08d7212f730e1219672 Binary files /dev/null and b/output_9_1.png differ