Repository: LuisOlivaresJ/Dosepy (language: python)

Issue:
update



Discussion / hints:

Fix patch:
diff --git a/.gitignore b/.gitignore
index 4933cbd..9db3a3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,6 @@ docs/.jekyll-metadata
 docs/vendor
 docs/NOM_241_SSA1_2021
 src/Dosepy/GUILayouts/__pycache__
+src/Dosepy/tools/__pycache__
+src/Dosepy/tools/demo_files
 debugging.py
\ No newline at end of file
diff --git a/dist/Dosepy-0.3.8-py3-none-any.whl b/dist/Dosepy-0.3.8-py3-none-any.whl
deleted file mode 100644
index 03ce78e..0000000
Binary files a/dist/Dosepy-0.3.8-py3-none-any.whl and /dev/null differ
diff --git a/dist/Dosepy-0.3.8.tar.gz b/dist/Dosepy-0.3.8.tar.gz
deleted file mode 100644
index c730309..0000000
Binary files a/dist/Dosepy-0.3.8.tar.gz and /dev/null differ
diff --git a/dist/Dosepy-0.3.9-py3-none-any.whl b/dist/Dosepy-0.3.9-py3-none-any.whl
deleted file mode 100644
index 6e8be9e..0000000
Binary files a/dist/Dosepy-0.3.9-py3-none-any.whl and /dev/null differ
diff --git a/dist/Dosepy-0.3.9.tar.gz b/dist/Dosepy-0.3.9.tar.gz
deleted file mode 100644
index c8cd76f..0000000
Binary files a/dist/Dosepy-0.3.9.tar.gz and /dev/null differ
diff --git a/dist/Dosepy-0.4.0-py3-none-any.whl b/dist/Dosepy-0.4.0-py3-none-any.whl
deleted file mode 100644
index 9398517..0000000
Binary files a/dist/Dosepy-0.4.0-py3-none-any.whl and /dev/null differ
diff --git a/dist/Dosepy-0.4.0.tar.gz b/dist/Dosepy-0.4.0.tar.gz
deleted file mode 100644
index a3950d1..0000000
Binary files a/dist/Dosepy-0.4.0.tar.gz and /dev/null differ
diff --git a/docs/Jupyter_Book/JB_Pelicula_Notebook.ipynb b/docs/Jupyter_Book/JB_Pelicula_Notebook.ipynb
index a6c7cdc..469c8f5 100644
--- a/docs/Jupyter_Book/JB_Pelicula_Notebook.ipynb
+++ b/docs/Jupyter_Book/JB_Pelicula_Notebook.ipynb
@@ -6,7 +6,7 @@
    "id": "c13ab45e",
    "metadata": {},
    "source": [
-    "# Film dosimetry"
+    "# Film dosimetry (GUI)"
    ]
   },
   {
diff --git a/docs/Jupyter_Book/changelog.rst b/docs/Jupyter_Book/changelog.rst
index d6d50a5..05bc0a2 100644
--- a/docs/Jupyter_Book/changelog.rst
+++ b/docs/Jupyter_Book/changelog.rst
@@ -3,6 +3,14 @@
 Changelog
 =========
 
+V 0.5.0 (JAN-2024)
+------------------
+
+* New image, calibration and i_o modules to have new functionalities. The content is heavily inspired from `pylinac <https://pylinac.readthedocs.io/en/latest/>`_ and `OMG_dosimetry <https://omg-dosimetry.readthedocs.io/en/latest/>`_ libraries.
+* First steps using unittest and flake8. 
+* Use of scikit-image for auto film detection.
+* Documentation for Getting stated with scripting.
+
 V 0.4.0 (AUG-2023)
 -------------------
 
diff --git a/docs/Jupyter_Book/usage.md b/docs/Jupyter_Book/usage.md
index 4eec339..72cda57 100644
--- a/docs/Jupyter_Book/usage.md
+++ b/docs/Jupyter_Book/usage.md
@@ -2,10 +2,83 @@
 
 ![Portada_Dosepy](../assets/Perfiles_1.png)
 
+## Usign a GUI
+
 The easiest way to use Dosepy is through a graphical user interface (GUI). Open a python interpreter (for example opening *Anaconda Prompt* and typing python) and import Dosepy.GUI as follows:
 
 ```python
 import Dosepy.GUI
 ```
 
-Dosepy comes pre-loaded with two examples of dose distributions, to allow interaction with the available tools.
+Dosepy has two pre-loaded dose distributions examples to allow interaction with the available tools.
+
+## Scripting (beta version)
+
+### Film calibration
+
+Import libraries
+
+```python
+from Dosepy.tools.image import load
+from pathlib import Path
+```
+
+Read the tif file that will be used for film calibration and define the imparted doses.
+
+```python
+file_path = Path("/home/user/tif_files") / "some.tif"
+cal_image = load(file_path, for_calib = True)
+
+imparted_doses = [0, 0.5, 1, 1.5, 2, 3, 5, 8, 10]
+```
+
+Produce the calibration curve using the red channel, a roi size of 16 mm width, 8 mm height, and a rational function.
+
+```python
+cal = cal_image.get_calibration(doses = imparted_doses, channel = "R", roi = (16, 8), func = "RF")
+cal.plot(color = 'red')
+```
+
+### Film to dose
+
+Load another tif file
+
+```python
+qa_image_path = Path("/home/user/tif_files") / "other.tif"
+qa_image = load(qa_image_path)
+```
+
+Apply the calibration curve
+
+```python
+dose_img = qa_image.to_dose(cal)
+```
+
+Plot it
+
+```python
+import matplotlib.pyplot as plt
+import numpy as np
+fig, ax = plt.subplots(ncols=1)
+
+max_dose = np.percentile(dose_img.array, [99.9])[0]
+pos = ax.imshow(dose_img.array, cmap='nipy_spectral')
+pos.set_clim(-.05, max_dose)
+
+# add a colorbar
+fig.colorbar(pos, ax=ax)
+plt.plot()
+```
+
+Get mean doses from central rois in each founded films.
+
+```python
+doses_in_central_rois = qa_image.doses_in_central_rois(cal, roi = (20, 8), show=True)
+print(doses_in_central_rois)
+```
+
+Save the dose distribution as a tif file (in cGy)
+
+```python
+dose_img.save_as_tif("dose_in_tif_file")
+```
\ No newline at end of file
diff --git a/pyproject.toml b/pyproject.toml
index 0083d53..ef7b4e0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
 
 [project]
 name = "Dosepy"
-version = "0.4.0"
+version = "0.5.0"
 authors = [
   { name="Luis Alfonso Olivares Jimenez", email="alfonso.cucei.udg@gmail.com" },
 ]
diff --git a/src/Dosepy.egg-info/PKG-INFO b/src/Dosepy.egg-info/PKG-INFO
deleted file mode 100644
index 5d6e1bc..0000000
--- a/src/Dosepy.egg-info/PKG-INFO
+++ /dev/null
@@ -1,206 +0,0 @@
-Metadata-Version: 2.1
-Name: Dosepy
-Version: 0.4.0
-Summary: Gamma analysis and film dosimetry for dose distributions in radiotherapy
-Author-email: Luis Alfonso Olivares Jimenez <alfonso.cucei.udg@gmail.com>
-Project-URL: homepage, https://dosepy.readthedocs.io/en/latest/intro.html
-Project-URL: repository, https://pypi.org/project/Dosepy/
-Project-URL: Bug-Tracker, https://github.com/LuisOlivaresJ/Dosepy
-Keywords: Radiotherapy,Dose distribution,gamma index,python
-Classifier: Programming Language :: Python :: 3
-Classifier: Operating System :: OS Independent
-Classifier: Intended Audience :: Science/Research
-Classifier: Intended Audience :: Education
-Classifier: Intended Audience :: Healthcare Industry
-Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
-Classifier: Topic :: Scientific/Engineering :: Physics
-Classifier: Natural Language :: Spanish
-Requires-Python: >=3.7
-Description-Content-Type: text/markdown
-License-File: LICENSE
-
-# *Dosepy*
-
-[ReadTheDocs Documentation](https://dosepy.readthedocs.io/en/latest/intro.html)
-
-*Dosepy* es un paquete de código escrito en Python para la comparación mediante índice gamma de dos distribuciones de dosis, 2-dimensional. Adicionalmente, se cuenta con una herramienta para realizar dosimetría con película radiocrómica.<br/>
-
-El formato de los archivos que contengan la distribución de dosis puede ser DICOM (.dmc) o CVS. Para la película se requiere un formato TIFF.<br/>
-
-> **Condiciones de uso.** Toda persona tiene acceso a la lectura y uso del código con fines académicos o de enseñanza. Sin embargo, para el uso clínico del programa se requiere contar con una licencia (disponible próximamente), conocida como “Acuerdo de licencia de usuario final” (EULA, por sus siglas en inglés), así como contratos que garanticen el cumplimiento de la legislación de cada país.<br/>  
-
-Para mayor información contactar al correo electrónico dosepy@gmail.com. 
-
-Derechos Reservados (c) Luis Alfonso Olivares Jimenez 2021
-
-## Documentación
-
-Para la instalación, correr ejemplos de prueba y aprender sobre el programa Dosepy, [visita la Documentación](https://dosepy.readthedocs.io/en/latest/intro.html) en Read The Docs.
-
-## Métodos de comparación
-
-### Comparación por índice gamma
-La comparación de dos distribuciones puede realizarse mediante la prueba del índice gamma 2-dimensional de acuerdo a la definición dada por [Low D. A.](https://doi.org/10.1118/1.598248) así como algunas recomendaciones del [TG-218]( https://doi.org/10.1002/mp.12810) de la AAPM:
-
-* El criterio de aceptación para la diferencia en dosis puede ser seleccionado en modo absoluto (en Gy) o en modo relativo (en %).
-  * En modo relativo, el porcentaje puede interpretarse con respecto al máximo de la distribución de dosis a evaluar (normalización global), o con respecto a la dosis local en la distribución de referencia (normalización local); según la selección del usuario.
-* El umbral de dosis puede ser ajustado por el usuario.
-* La distribución de referencia puede ser seleccionada por el usuario.
-* Se permite definir un radio de búsqueda como proceso de optimización para el cálculo.
-* Es posible utilizar el percentil 99.1 de la distribución de dosis como una aproximación del valor máximo. Esto permite evitar la posible inclusión de artefactos o errores en posiciones puntuales de la distribución (de utilidad por ejemplo cuando se utiliza película radiocrómica).
-* No se realiza interpolación entre puntos.
-
-**Proceso de una primera validación del algoritmo gamma**<br/>
-
-[Resumen](https://github.com/LuisOlivaresJ/Dosepy/blob/2bf579e6c33c347ef8f0cdd6f4ee7534798f0d13/docs/assets/validation.pdf)<br/>
-La validación del algoritmo para la prueba del índice gamma se realizó mediante la comparación de resultados contra los softwares DoseLab 4.11 y VeriSoft 7.1.0.199. Dicho trabajo se presentó en el 7mo Congreso de la Federación Mexicana de Organizaiones de Física Médica en el año 2021 [(Video)](https://youtu.be/HM4qkYGzNFc).
-
-**¡Consideraciones!**
-
-* Ambas distribuciones deben tener las mismas dimensiones físicas y resolución espacial (mismo número de filas y columnas).
-* Las distribuciones deben de  encontrarse registradas, es decir, la coordenada espacial de un punto en la distribución de referencia debe ser igual a la coordenada del mismo punto en la distribución a evaluar.<br/>
-
-En caso contrario, *Dosepy* dispone de algunas funciones para cumplir con lo anterior.
-
-## Instalación
-**En Linux**<br/>
-El método más sencillo para instalar Dosepy es escribiendo en una terminal:
-```bash
-pip install Dosepy
-```
-**En Windows**<br/>
-Previo a la instalación de Dosepy, es necesario contar con un administrador de paquetes. Para quienes no estén familiarizados con los paquetes Python, se recomienda utilizar la plataforma [ANACONDA](https://www.anaconda.com/products/individual).
-Una vez que se ha instalado ANACONDA, abrir el inicio de Windows y buscar *Anaconda Prompt*. Dentro de la terminal (ventana con fondo negro), seguir la indicación descrita para Linux (párrafo anterior).
-
-### Versión Beta
-Dosepy se encuentra en una versión beta, especificada por el formato 0.X.X. Lo anterior implica que en la práctica, un código que utiliza el paquete Dosepy en una versión, pudiera no ser ejecutado en una versión posterior.  La versión estable será publicada con el formato 1.X.X.<br/>
-Para mantener actualizado el paquete Dosepy, utilizar [pip](https://pip.pypa.io/en/stable/):
-```bash
-pip install --upgrade Dosepy
-```
-
-### Ejemplos
- 
-**Ejemplo con interfaz gráfica**
-
-Para utilizar *Dosepy* con una interfaz gráfica , abrimos una terminal (o Anaconda Prompt en el caso de Windows) y escribimos el comando **python**:
-
-```bash
-python
-```
-Posteriormente, escribimos:
-
-```python
-import Dosepy.GUI
-```
-
-**Uso de un Notebook**
-
-Para aprender a utilizar todas las herramientas de *Dosepy* se recomienda el uso de un Notebook del entorno [Jupyter](https://jupyter.org/). [*Aquí*](Notebook.md) puedes consultar una guía para ello.
-
-### Importación de archivo en formato csv
-La importación de la distribución de referencia puede realizarse sólo si el archivos se encuentra en formato .csv (valores separados por comas). Adicionalmente:
-* El archivo deberá contener sólo los valores de dosis.
-* Toda información adicional deberá estar precedida con el carácter "#". Ello indicará que todos los caracteres que se encuentren en la misma linea después de "#" debe de ser ignorados por Dosepy.
-* La unidad para la dosis deberá ser el Gray (Gy).
-
-### Importación de archivo en formato dcm
-La distribución a evaluar puede importarse en un archivo con formato .csv o en formato .dcm (archivo DICOM). Si el formato es DICOM:
-* Deberá contener sólo un plano de dosis.
-* La resolución espacial debe ser igual en cada dimensión.
-* La unidad para la dosis deberá ser el Gray (Gy).
-
-## Ejemplo utilizando una terminal
-En *Dosepy*, una distribución de dosis es representada como un objeto de la [clase](https://docs.python.org/es/3/tutorial/classes.html) **Dose** del paquete *Dosepy*. Para crear el objeto son necesarios dos argumentos: las dosis de la distribución en formato [ndarray](https://numpy.org/doc/stable/reference/index.html#module-numpy) y la resolución espacial dada por la distancia (en milímetros) entre dos puntos consecutivos.
-Para utilizar *Dosepy*, abrimos una terminal (o Anaconda Prompt en el caso de Windows) y escribimos el comando python:
-
-```bash
-python
-```
-
-Dentro de Python, escribimos el siguiente código de prueba:
-
-```python
-import numpy as np
-import Dosepy.dose as dp
-
-a = np.zeros((10,10)) + 96   # Matrices de prueba
-b = np.zeros((10,10)) + 100  
-
-D_ref = dp.Dose(a, 1)   # Se crea la distribución de referencia
-D_eval = dp.Dose(b, 1)  # Se crea la distribución a evaluar
-```
-
-La comparación gamma entre dos distribuciones de dosis se realiza mediante el método *gamma2D*. Como argumentos se requiere:
-* La distribución de dosis de referencia
-* El porcentaje para la diferencia en dosis de tolerancia
-* La distancia de tolerancia o criterio DTA en mm.
-
-```python
-#   Llamamos al método gamma2D, con criterio 3 %, 1 mm.
-gamma_distribution, pass_rate = D_eval.gamma2D(D_ref, dose_t = 3, dist_t = 1)
-print(pass_rate)
-```
-
-## Datos en formato CSV, usando un umbral de dosis
-
-Es posible cargar archivos de datos en fromato CSV (comma separate values) mediante la función *from_csv* del paquete Dosepy.
-Para descartar filas dentro del archivo, utilizar el caracter # al inicio de cada fila (inicio de un comentario).
-```python
-import Dosepy.dose as dp
-import matplotlib.pyplot as plt
-
-#   Cargamos los archivos "D_TPS.csv" y "D_FILM.csv", ambos con 1.0 milímetro de espacio entre un punto y otro.
-#   (Los archivos de ejemplo .csv se encuentran dentro del paquete Dosepy, en la carpeta src/Dosepy/data/)
-D_eval = dp.from_csv("D_TPS.csv", PixelSpacing = 1)
-D_ref = dp.from_csv("D_FILM.csv", PixelSpacing = 1)
-
-#   Llamamos al método gamma2D, con criterio 3 %, 2 mm, descartando puntos con dosis por debajo del 10 %.
-g, pass_rate = D_eval.gamma2D(D_ref, dose_t = 3, dist_t = 2, dose_tresh = 10)
-
-#   Imprimimos el resultado
-print(f'El índice de aprobación es: {pass_rate:.1f} %')
-plt.imshow(g, vmax = 1.4)
-plt.show()
-
-#El índice de aprobación es: 98.9 %
-
-```
-## Datos en formato DICOM y modo de dosis absoluto
-
-Importación de un archivo de dosis en formato DICOM
-
-*Consideraciones*
-
-* La distribución de dosis en el archivo DICOM debe contener solo dos dimensiones (2D).
-* El espacio entre dos puntos (pixeles) debe de ser igual en ambas dimensiones.
-* No se hace uso de las coordenadas dadas en el archivo DICOM. Ver primera consideración en el apartado Gamma index.
-
-```python
-import Dosepy.dose as dp
-
-#   Cargamos los archivos "RD_file.dcm" y "D_FILM_2mm.csv", ambos con 2 milímetro de espacio entre un punto y otro.
-D_eval = dp.from_dicom("RD_file.dcm")
-D_ref = dp.from_csv("D_FILM_2mm.csv", PixelSpacing = 2)
-
-#   Llamamos al método gamma2D, con criterio de 0.5 Gy para la diferencia en dosis y 3 mm para la diferencia en distancia.
-g, pass_rate = D_eval.gamma2D(D_ref, 0.5, 3, dose_t_Gy = True)
-
-#   Imprimimos el resultado
-print(pass_rate)
-
-```
-
-**Presentación en eventos científicos**
-
-* (2021) 7mo Congreso de la Federación Mexicana de Organizaiones de Física Médica, "Desarrollo y validación de un software de código abierto para la comparación de distribuciones de dosis usadas en radioterapia" [(Video disponible)](https://youtu.be/HM4qkYGzNFc)
-
-# Discussion
-Have questions? Ask them on the Dosepy [discussion forum](https://groups.google.com/g/dosepy).
-
-04-2023 Versión 0.4.0<br/>
-* On the GUI, dose objects are created after loading. 
-* When a csv file is open, a new window shows to ask for resolution.
-* Quality control tests for new versions or post installation acceptance.
-* New tool for horizontal profile analysis, based on [relative_dose_1d](https://github.com/LuisOlivaresJ/relative_dose_1d) package. 
-
diff --git a/src/Dosepy.egg-info/SOURCES.txt b/src/Dosepy.egg-info/SOURCES.txt
deleted file mode 100644
index 545fbf2..0000000
--- a/src/Dosepy.egg-info/SOURCES.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-LICENSE
-MANIFEST.in
-README.md
-pyproject.toml
-src/Dosepy/GUI.py
-src/Dosepy/__init__.py
-src/Dosepy/dose.py
-src/Dosepy.egg-info/PKG-INFO
-src/Dosepy.egg-info/SOURCES.txt
-src/Dosepy.egg-info/dependency_links.txt
-src/Dosepy.egg-info/requires.txt
-src/Dosepy.egg-info/top_level.txt
-src/Dosepy/GUILayouts/Bloque_Imagenes.py
-src/Dosepy/GUILayouts/Bloque_gamma.py
-src/Dosepy/GUILayouts/__init__.py
-src/Dosepy/GUILayouts/about_window.py
-src/Dosepy/GUILayouts/cross_hair_cursor.py
-src/Dosepy/GUILayouts/cursor.py
-src/Dosepy/GUILayouts/film_to_doseGUI.py
-src/Dosepy/GUILayouts/licencia_window.py
-src/Dosepy/GUILayouts/to_do_rendering.py
-src/Dosepy/Icon/Icon.png
-src/Dosepy/Icon/Logo_Dosepy.png
-src/Dosepy/Icon/folder.png
-src/Dosepy/Icon/save.png
-src/Dosepy/data/D_FILM.csv
-src/Dosepy/data/D_TPS.csv
-src/Dosepy/tools/__init__.py
-src/Dosepy/tools/film_to_dose.py
-src/Dosepy/tools/resol.py
\ No newline at end of file
diff --git a/src/Dosepy.egg-info/dependency_links.txt b/src/Dosepy.egg-info/dependency_links.txt
deleted file mode 100644
index 8b13789..0000000
--- a/src/Dosepy.egg-info/dependency_links.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-
diff --git a/src/Dosepy.egg-info/requires.txt b/src/Dosepy.egg-info/requires.txt
deleted file mode 100644
index 123a2dd..0000000
--- a/src/Dosepy.egg-info/requires.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-numpy>=1.23.4
-pydicom>=2.3.0
-matplotlib>=3.6.1
-tifffile>=2022.10.10
-scipy>=1.9.3
-PyQt6>=6.5.1
-relative_dose_1d>=0.1.7
diff --git a/src/Dosepy.egg-info/top_level.txt b/src/Dosepy.egg-info/top_level.txt
deleted file mode 100644
index 9bed5db..0000000
--- a/src/Dosepy.egg-info/top_level.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-Dosepy
diff --git a/src/Dosepy/Film calibration.ipynb b/src/Dosepy/Film calibration.ipynb
new file mode 100644
index 0000000..8729645
--- /dev/null
+++ b/src/Dosepy/Film calibration.ipynb
@@ -0,0 +1,423 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "3a501289-6d7e-4e0d-ab76-e85eca296d50",
+   "metadata": {},
+   "source": [
+    "## Film calibration (Alejandro-48H)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e08b5a51-de07-4317-88db-e104a3240ae3",
+   "metadata": {},
+   "source": [
+    "### Importar librerias"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "af2c510f-3190-4d6a-80ca-025904a65db7",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tools.image import load\n",
+    "from pathlib import Path"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "db552020-1ec0-4516-9c09-7b6c5165c69e",
+   "metadata": {},
+   "source": [
+    "### Dosis usadas para calibración"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "49b88b41-aac0-4c21-bc08-3a4d97521fc0",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "imparted_doses = [0, 0.5, 1, 1.5, 2, 3, 5, 8, 10]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "96479326-4be1-427d-8b9c-1ab4c823767c",
+   "metadata": {},
+   "source": [
+    "### Lectura de archivo para calibración\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "f4781cf1-42b7-4144-8b97-8263c0332160",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#file_path = Path(\"/home/luis/Downloads\") / \"POS48_1.tif\"  # Office PC\n",
+    "file_path = Path(\"/home/luis/Descargas\") / \"POS48_1.tif\" # Personal laptop\n",
+    "cal_image = load(file_path, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ec60e9cc-a1a6-404e-8c54-2cccd07e5a62",
+   "metadata": {},
+   "source": [
+    "### Obtener curva de calibración\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "e90e811d-eafa-4795-af00-6b72cd25e09a",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGzCAYAAAA1yP25AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABF10lEQVR4nO3dd3RUdf7/8dekR0hCTQAJEEJvBokiRSnisoIFK+4PaTZ2xQarfCmLDSWy6yIuKoirBBBFUWRdQUARZFFEWpAivQoSahJqgOT+/vgwE0ISSJmZO5M8H+fcc+/ce2d43wSZl/d+isOyLEsAAAB+KMDuAgAAAIqLIAMAAPwWQQYAAPgtggwAAPBbBBkAAOC3CDIAAMBvEWQAAIDfIsgAAAC/RZABAAB+iyADoFA6duyojh07ul7v2rVLDodDycnJXq2jX79+qlOnjts+b/HixXI4HFq8eLHbPvNSDodDL774osc+Pz92/X4AbyPIAG6SnJwsh8OhsLAw7du3L8/xjh07qlmzZjZUBgClV5DdBQClTWZmpl577TWNHz/e7lI8qnbt2jp9+rSCg4PtLqVEbrrpJp0+fVohISF2lwKgGLgjA7hZQkKC3nvvPe3fv99jf4ZlWTp9+rTHPr8wnHefAgMDba2jpAICAhQWFqaAAP45BPwR/+UCbjZ8+HBlZWXptddeu+K558+f16hRoxQfH6/Q0FDVqVNHw4cPV2ZmZq7z6tSpo9tuu03z589XYmKiwsPD9e6777rad3z66ad66aWXdPXVVysiIkL33nuv0tPTlZmZqWeeeUbR0dEqX768+vfvn+ezJ0+erM6dOys6OlqhoaFq0qSJJkyYcMXaL22D4awlv+XSNi1ff/21brzxRpUrV04RERHq3r27NmzYkOfPmD17tpo1a6awsDA1a9ZMX3zxxRXruvRntmDBAiUkJCgsLExNmjTRrFmzcp13aRuZX3/9VeHh4erTp0+u85YuXarAwED93//9n2tfWlqannnmGcXGxio0NFT16tXTmDFjlJ2dXeg6JSk1NVVBQUF66aWX8hzbvHmzHA6H3nrrLUnS0aNH9eyzz6p58+YqX768IiMjdeutt2rt2rVX/HMubefklF+7o+zsbI0bN05NmzZVWFiYYmJiNGDAAB07dqxI1wZ4Go+WADeLi4tTnz599N5772no0KGqUaNGgec+8sgjmjJliu6991799a9/1fLly5WUlKRff/01z5f25s2b9ac//UkDBgzQo48+qoYNG7qOJSUlKTw8XEOHDtW2bds0fvx4BQcHKyAgQMeOHdOLL76on376ScnJyYqLi9Pzzz/veu+ECRPUtGlT3XHHHQoKCtJ///tfPf7448rOztbAgQMLfd2NGzfWtGnTcu1LS0vT4MGDFR0d7do3bdo09e3bV127dtWYMWN06tQpTZgwQe3bt9eaNWtcX6gLFizQPffcoyZNmigpKUlHjhxR//79VbNmzULXtHXrVvXs2VN//vOf1bdvX02ePFn33Xef5s2bp1tuuaXA6xg1apSee+453Xvvvbrjjjt08uRJ9evXT40aNdLLL78sSTp16pQ6dOigffv2acCAAapVq5Z+/PFHDRs2TL///rvGjRtX6DpjYmLUoUMHffrpp3rhhRdyHfvkk08UGBio++67T5K0Y8cOzZ49W/fdd5/i4uKUmpqqd999Vx06dNDGjRsv+/etKAYMGKDk5GT1799fTz31lHbu3Km33npLa9as0Q8//OD3jxRRilgA3GLy5MmWJGvFihXW9u3braCgIOupp55yHe/QoYPVtGlT1+uUlBRLkvXII4/k+pxnn33WkmR99913rn21a9e2JFnz5s3Lde6iRYssSVazZs2ss2fPuvb/6U9/shwOh3XrrbfmOr9NmzZW7dq1c+07depUnmvp2rWrVbdu3Vz7OnToYHXo0MH1eufOnZYka/Lkyfn+PLKzs63bbrvNKl++vLVhwwbLsizr+PHjVoUKFaxHH30017kHDhywoqKicu1PSEiwqlevbqWlpbn2LViwwJKU5xry4/yZff7556596enpVvXq1a2WLVu69jl/hosWLXLty8rKstq3b2/FxMRYhw8ftgYOHGgFBQVZK1ascJ0zatQoq1y5ctaWLVty/blDhw61AgMDrT179rj2SbJeeOGFy9b77rvvWpKsdevW5drfpEkTq3Pnzq7XZ86csbKysnKds3PnTis0NNR6+eWXc+279Pdz6e/QqW/fvrl+pv/73/8sSdb06dNznTdv3rx89wN24tES4AF169ZV7969NWnSJP3+++/5njN37lxJ0uDBg3Pt/+tf/ypJmjNnTq79cXFx6tq1a76f1adPn1z/h9y6dWtZlqWHHnoo13mtW7fW3r17df78ede+8PBw13Z6eroOHz6sDh06aMeOHUpPT7/SpRZo1KhR+uqrr5ScnKwmTZpIkr755hulpaXpT3/6kw4fPuxaAgMD1bp1ay1atEiS9PvvvyslJUV9+/ZVVFSU6zNvueUW12cVRo0aNXTXXXe5XkdGRqpPnz5as2aNDhw4UOD7AgIClJycrBMnTujWW2/VO++8o2HDhikxMdF1zsyZM3XjjTeqYsWKua6lS5cuysrK0pIlSwpdpyTdfffdCgoK0ieffOLat379em3cuFE9e/Z07QsNDXW158nKytKRI0dUvnx5NWzYUKtXry7Sn1mQmTNnKioqSrfcckuua2vVqpXKly/v+j0BvoAgA3jI3/72N50/f77AtjK7d+9WQECA6tWrl2t/tWrVVKFCBe3evTvX/ri4uAL/rFq1auV67fzyj42NzbM/Ozs7V0D54Ycf1KVLF5UrV04VKlRQ1apVNXz4cEkqdpCZN2+eXnrpJQ0bNkz33HOPa//WrVslSZ07d1bVqlVzLQsWLNDBgwclyXXt9evXz/PZFz9Su5J69erJ4XDk2tegQQNJpo3P5cTHx+vFF1/UihUr1LRpU40cOTLX8a1bt2revHl5rqNLly6S5LqWwqpSpYpuvvlmffrpp659n3zyiYKCgnT33Xe79mVnZ+uNN95Q/fr1FRoaqipVqqhq1ar65ZdfShQ8L7229PR0RUdH57m+EydOFPnaAE+ijQzgIXXr1tWDDz6oSZMmaejQoQWed+kXbUEuvnNyqYJ6DhW037IsSdL27dt18803q1GjRho7dqxiY2MVEhKiuXPn6o033ihyo1VJ2rlzp3r16qVbbrlFr7zySq5jzs+bNm2aqlWrlue9QUG+9U/SggULJEn79+/XkSNHctWcnZ2tW265RUOGDMn3vc7AVBQPPPCA+vfvr5SUFCUkJOjTTz/VzTffrCpVqrjOGT16tEaOHKmHHnpIo0aNUqVKlRQQEKBnnnnmir8vh8Ph+t1fLCsrK9fr7OxsRUdHa/r06fl+TtWqVYt8bYCn+Na/GkAp87e//U0ffvihxowZk+dY7dq1lZ2dra1bt6px48au/ampqUpLS1Pt2rU9Xt9///tfZWZm6ssvv8x1V6e4jw5Onz6tu+++WxUqVNDHH3+cp0tzfHy8JCk6Otp15yI/zmt33sG52ObNmwtdz7Zt22RZVq6wuGXLFkm64ujAEydO1DfffKNXX31VSUlJGjBggP7zn//kupYTJ05c9jqKqkePHhowYIDr8dKWLVs0bNiwXOd89tln6tSpk95///1c+9PS0nIFnvxUrFhRO3bsyLP/0rt/8fHx+vbbb9WuXbvLBmjAF/BoCfCg+Ph4Pfjgg3r33XfztMno1q2bJOXp3TJ27FhJUvfu3T1en/OOzcX/l56enq7JkycX6/P+/Oc/a8uWLfriiy9UsWLFPMe7du2qyMhIjR49WufOnctz/NChQ5Kk6tWrKyEhQVOmTMn1uOSbb77Rxo0bC13P/v37c/X+ysjI0NSpU5WQkJDvHSGnnTt36rnnntM999yj4cOH6/XXX9eXX36pqVOnus65//77tWzZMs2fPz/P+9PS0nK1QyqsChUqqGvXrvr00081Y8YMhYSEqEePHrnOCQwMzHNXZebMmfmOJn2p+Ph4bdq0yfVzlqS1a9fqhx9+yHXe/fffr6ysLI0aNSrPZ5w/f15paWmFvyjAw7gjA3jYiBEjNG3aNG3evFlNmzZ17b/mmmvUt29fTZo0SWlpaerQoYN+/vlnTZkyRT169FCnTp08Xtsf/vAHhYSE6Pbbb9eAAQN04sQJvffee4qOji6wkXJB5syZo6lTp+qee+7RL7/8ol9++cV1rHz58urRo4ciIyM1YcIE9e7dW9dee60eeOABVa1aVXv27NGcOXPUrl0713gpSUlJ6t69u9q3b6+HHnpIR48e1fjx49W0aVOdOHGiUDU1aNBADz/8sFasWKGYmBh98MEHSk1NvWxQczaSDg8Pd42nM2DAAH3++ed6+umn1aVLF9WoUUPPPfecvvzyS912223q16+fWrVqpZMnT2rdunX67LPPtGvXriveIclPz5499eCDD+qdd95R165dVaFChVzHb7vtNr388svq37+/2rZtq3Xr1mn69OmqW7fuFT/7oYce0tixY9W1a1c9/PDDOnjwoCZOnKimTZsqIyPDdV6HDh00YMAAJSUlKSUlRX/4wx8UHBysrVu3aubMmXrzzTd17733FvnaAI+wsccUUKpc3P36Un379rUk5ep+bVmWde7cOeull16y4uLirODgYCs2NtYaNmyYdebMmVzn1a5d2+revXuez3V2HZ45c2ahannhhRcsSdahQ4dc+7788kurRYsWVlhYmFWnTh1rzJgx1gcffGBJsnbu3Ok6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W7fO9fo///mPevTooeHDh+vs2bPF+UiURM2a0i23mG1G+gUAlCHFCjIDBgzQli1bJEk7duxQz549ddVVV2nmzJkaMmSIWwtEITnHlJk0SerUSVq50t56AADwgmIFmS1btighIUGSNHPmTHXo0EEfffSRkpOT9fnnn7uzPhRWjx5S5cpSaqq0eLE0bZrdFQEA4HHFCjKWZSn7wkiy3377rbp16yZJio2N1eHDh91XHQpn925pwwbpttty9s2YIa1eLa1aZY4DAFAKFav7dWJiol555RV16dJF33//vSZMmCBJ2rlzp2JiYtxaIAqhTp28+w4elC7uQVa623QDAMqoYt2RGTdunFavXq0nnnhCI0aMUL169SRJn332mdq2bevWAlEIH34oBRWQSYOCzHEAAEoht3a/PnPmjAIDAxUcHOyujyyxMtH9WjKPkfIbw2fVKunaa71fDwAAJVDY7+9iPVpyWrVqlX799VdJUpMmTXQtX5j2CwhgJmwAQJlRrCBz8OBB9ezZU99//70qVKggSUpLS1OnTp00Y8YMVa1a1Z01ojCio6Vq1aTYWKluXemTT6TAQInfBQCgFCtWG5knn3xSJ06c0IYNG3T06FEdPXpU69evV0ZGhp566il314jCqFlT2rVLWr7cjCVTrpyUlWXmYAIAoJQqVpCZN2+e3nnnHTVu3Ni1r0mTJnr77bf19ddfu604FFFoqJl7KTIyZ/6lt96ytSQAADypWEEmOzs73wa9wcHBrvFlYLOBA836P/+R9uyxtxYAADykWEGmc+fOevrpp7V//37Xvn379mnQoEG6+eab3VYcSqBxY+nmm03D3/Hj7a4GAACPKFaQeeutt5SRkaE6deooPj5e8fHxiouLU0ZGhsbzpek7Bg0y64kTpWPH7K0FAAAPKFavpdjYWK1evVoLFy50db9u3LixunTp4tbiUELduknNmknr10sTJkjDh9tdEQAAblXkIJOdna3k5GTNmjVLu3btksPhUFxcnKKiomRZlhwOhyfqRHE4HNLQodKDD0rjxpk7NOHhdlcFAIDbFOnRkmVZuuOOO/TII49o3759at68uZo2bardu3erX79+uuuuuzxVJ4qrZ08zF9OhQ9LkyXZXAwCAWxUpyCQnJ2vJkiVauHCh1qxZo48//lgzZszQ2rVr9e233+q7777T1KlTPVUriiMoSHr2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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal = cal_image.get_calibration(doses = imparted_doses, channel = \"R\", roi = (16, 8), func = \"RF\")\n",
+    "cal.plot(color = 'red')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fc0b2fb1-26c3-4b75-a00d-c62afee5ad4e",
+   "metadata": {},
+   "source": [
+    "### Mostrar ROIs y valores medios de pixel."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3b493587-49f4-45b0-b168-011f51e8932d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_image.get_stat(ch = 'B', roi = (16, 8), show = True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "8eff59f8-b7d2-432d-a03f-604edc5536dd",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 3\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<matplotlib.colorbar.Colorbar at 0x7fe09e12f010>"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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aM/7XmcQbPbu3cvPf/5zzj777KjpX/va13jyySd5/PHH2bFjB++88w6f/exnw/ODwSDLly+nr6+PP/7xjzz88MNs2rSJ22+/ffjvQkRkrAhm6ZFnwwo2HR0drFixggcffJDx48eHp7e1tfHLX/6SH/3oR3z84x/n3HPP5aGHHuKPf/wjzz//PAD/8R//wauvvsrmzZuZN28eF198Md/97ne5//776esbiRF7REQk14YVbFatWsXy5ctZunRp1PR9+/bR398fNX3OnDnMnDmTXbt2AbBr1y7OOussampqwsssW7aM9vZ2Xnnllbjb6+3tpb29PeohIjImhbL0SNHGjRs5++yzqayspLKykoaGBp566qm0dzvt3miPPfYYL774Inv37h00r7m5meLiYqqrq6Om19TU0NzcHF7GHWjMfDMvng0bNnDnnXemu6siIiefbFSDpfH66dOnc9dddzF79mwsy+Lhhx/m05/+NC+99BJnnnlmyutJK7M5dOgQN910E4888gilpaXpvDQj69ato62tLfw4dOhQ3rYtIjKWXXbZZVxyySXMnj2bD37wg3z/+9+noqIi3DSSqrQym3379tHS0sKHPvSh8LRgMMhzzz3HfffdxzPPPENfXx+tra1R2c2RI0eora0FoLa2lj179kSt1/RWM8vEKikpoaSkJJ1dFRE5OWUxs4ltkhiqrA0Ggzz++ON0dnbS0NCQ1ibTymwuvPBCXn75ZRobG8OPBQsWsGLFivDvRUVFbNu2Lfya119/nYMHD4Z3rKGhgZdffpmWlshdKLdu3UplZSVz585Na+dFRMacLLbZzJgxg6qqqvBjw4YNcTf58ssvU1FRQUlJCV/+8pd54okn0i6v08psxo0bR319fdS08vJyJk6cGJ5+7bXXsnbtWiZMmEBlZSU33ngjDQ0NnH/++QBcdNFFzJ07ly996UvcfffdNDc38+1vf5tVq1YpexERyaNDhw5RWVkZfp6oDD799NNpbGykra2Nf/3Xf2XlypXs2LEjrYCT9eFqfvzjH+P3+7niiivo7e1l2bJl/OxnPwvPLygoYMuWLdxwww00NDRQXl7OypUr+c53vpPtXREROflksRrN9DAbSnFxMaeddhoA5557Lnv37uUnP/kJP//5z1PepM+yrJEYJicj7e3tVFVVMZ6J+DTijoiMMIsQ73OMtra2lArv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xu+3e2JUVVWN6Q94ulJJmSVCxyt1Olbk5cS3tLQ05QCRTV/4whc4evQot99+O83NzcybN4+nn356UKeBZDwZbEREJL9Wr16dVrVZLF0RKSIiOefJYFNSUsL69etz2k3vZKLjlR4dr9TpWEmqPDlcjYiIeIsnMxsREfEWBRsREck5BRsREck5BRsREck5BRsREck5TwabTG9PejLYsGEDCxcuZNy4cUyZMoXLL7+c119/PWqZnp4eVq1axcSJE6moqOCKK64YNJjewYMHWb58OYFAgClTpnDLLbcwMDCQz7eSd3fddRc+n481a9aEp+lYRWtqauKLX/wiEydOpKysjLPOOosXXnghPN+yLG6//XZOOeUUysrKWLp0KW+++WbUOo4fP86KFSuorKykurqaa6+9lo6Ojny/FRktLI957LHHrOLiYutXv/qV9corr1jXXXedVV1dbR05cmSkdy2vli1bZj300EPW/v37rcbGRuuSSy6xZs6caXV0dISX+fKXv2zNmDHD2rZtm/XCCy9Y559/vvXhD384PH9gYMCqr6+3li5dar300kvW7373O2vSpEnWunXrRuIt5cWePXusuro66+yzz7Zuuumm8HQdq4jjx49bp556qnX11Vdbu3fvtt566y3rmWeesf7yl7+El7nrrrusqqoq67e//a31pz/9yfrUpz5lzZo1y+ru7g4v88lPftI655xzrOeff976wx/+YJ122mnWVVddNRJvSUYBzwWb8847z1q1alX4eTAYtKZOnWpt2LBhBPdq5LW0tFiAtWPHDsuyLKu1tdUqKiqyHn/88fAyr732mgVYu3btsizLsn73u99Zfr/fam5uDi+zceNGq7Ky0urt7c3vG8iDEydOWLNnz7a2bt1qffSjHw0HGx2raN/85jetxYsXJ5wfCoWs2tpa65/+6Z/C01pbW62SkhLrX/7lXyzLsqxXX33VAqy9e/eGl3nqqacsn89nNTU15W7nZdTyVDWauT3p0qVLw9OGc3vSk1FbWxsQGRF737599Pf3Rx2rOXPmMHPmzPCx2rVrF2eddVbUYHrLli2jvb2dV155JY97nx+rVq1i+fLlUccEdKxi/fu//zsLFizg85//PFOmTGH+/Pk8+OCD4flvv/02zc3NUcerqqqKRYsWRR2v6upqFixYEF5m6dKl+P1+du/enb83I6OGp4JNstuTZuseD14UCoVYs2YNF1xwAfX19QA0NzdTXFxMdXV11LLuY9Xc3Bz3WJp5J5PHHnuMF198kQ0bNgyap2MV7a233mLjxo3Mnj2bZ555hhtuuIGvfvWrPPzww0Dk/Sb7HjY3NzNlypSo+YWFhUyYMOGkO16SGo36fBJYtWoV+/fvZ+fOnSO9K6PSoUOHuOmmm9i6deuIDM/uNaFQiAULFvCDH/wAgPnz57N//34eeOABVq5cOcJ7J17lqcwmW7cnPZmsXr2aLVu28Pvf/57p06eHp9fW1tLX10dra2vU8u5jVVtbG/dYmnkni3379tHS0sKHPvQhCgsLKSwsZMeOHdx7770UFhZSU1OjY+VyyimnMHfu3KhpZ5xxBgcPHgQi7zfZ97C2tpaWlpao+QMDAxw/fvykO16SGk8FG/ftSQ1ze9KGhoYR3LP8syyL1atX88QTT/Dss88ya9asqPnnnnsuRUVFUcfq9ddf5+DBg+Fj1dDQwMsvvxxVKGzdupXKyspBhY2XXXjhhbz88ss0NjaGHwsWLGDFihXh33WsIi644IJB3ejfeOMNTj31VABmzZpFbW1t1PFqb29n9+7dUcertbWVffv2hZd59tlnCYVCLFq0KA/vQkadke6hkK7HHnvMKikpsTZt2mS9+uqr1vXXX29VV1dH9RIaC2644QarqqrK2r59u/Xuu++GH11dXeFlvvzlL1szZ860nn32WeuFF16wGhoarIaGhvB80533oosushobG62nn37amjx58knZnTeWuzeaZelYue3Zs8cqLCy0vv/971tvvvmm9cgjj1iBQMDavHlzeJm77rrLqq6utv7t3/7N+u///m/r05/+dNyuz/Pnz7d2795t7dy505o9e7a6Po9hngs2lmVZP/3pT62ZM2daxcXF1nnnnWc9//zzI71LeQfEfTz00EPhZbq7u62vfOUr1vjx461AIGB95jOfsd59992o9Rw4cMC6+OKLrbKyMmvSpEnWzTffbPX39+f53eRfbLDRsYr25JNPWvX19VZJSYk1Z84c6xe/+EXU/FAoZN12221WTU2NVVJSYl144YXW66+/HrXMsWPHrKuuusqqqKiwKisrrWuuucY6ceJEPt+GjCK6n42IiOScp9psRETEmxRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5xRsREQk5/5/W+FKCHkMIEEAAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 640x480 with 2 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#%matplotlib inline\n",
+    "#%matplotlib qt\n",
+    "#Lectura de archivo\n",
+    "#verif_path = Path(\"/home/luis/Downloads\") / \"VERIFICACION_1.tif\"  # Office PC\n",
+    "verif_path = Path(\"/home/luis/Descargas\") / \"VERIFICACION_1.tif\" # Personal laptop\n",
+    "verif = load(verif_path)\n",
+    "\n",
+    "dose_img = verif.to_dose(cal)\n",
+    "\n",
+    "import matplotlib.pyplot as plt\n",
+    "import numpy as np\n",
+    "fig, ax = plt.subplots(ncols=1)\n",
+    "\n",
+    "# plot and save the\n",
+    "# color \"mappable\" object returned by ax.imshow\n",
+    "max_dose = np.percentile(dose_img.array, [99.9])[0]\n",
+    "#pos = ax.imshow(dose_img.array, cmap='turbo')\n",
+    "pos = ax.imshow(dose_img.array, cmap='nipy_spectral')\n",
+    "#pos = ax.imshow(dose_img.array)\n",
+    "pos.set_clim(-.05, max_dose)\n",
+    "#pos.set_clim(0, max_dose)\n",
+    "\n",
+    "# add the colorbar using the figure's method,\n",
+    "# telling which mappable we're talking about and\n",
+    "# which axes object it should be near\n",
+    "fig.colorbar(pos, ax=ax)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "52b469cd-8b4d-43d0-b501-a2d88431c221",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "np.percentile(dose_img.array, [99.9])[0].round(decimals=-1)\n",
+    "np.percentile(dose_img.array, [99.9])[0]\n",
+    "#max_dose\n",
+    "verif.plot()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2dc63bd5-efde-4e4a-ac68-10c45f934593",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "from tools.calibration import polynomial_g3, rational_func\n",
+    "\n",
+    "mean_pixel, _ = verif.get_stat(ch = \"R\", roi = (30, 10), show = True)\n",
+    "mean_pixel = sorted(mean_pixel, reverse = True)\n",
+    "\n",
+    "# Pixel normalization \n",
+    "norm_pixel = np.array(mean_pixel)/mean_pixel[0]\n",
+    "dose_from_rational = rational_func(norm_pixel, *cal.popt)\n",
+    "print(f\"Dosis por ajuste racional: {dose_from_rational}\")\n",
+    "#optical_density = -np.log10(np.array(mean_pixel)/mean_pixel[0])\n",
+    "\n",
+    "#dosis_from_poly = polynomial_g3(optical_density, *cal.popt)\n",
+    "#dosis_from_poly[dosis_from_fit < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "#print(f\"Dosis por ajuste polinomial: {dosis_from_poly}\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ec5b6197-6a00-404c-8d0b-d63a1676da24",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "doses_in_central_rois = verif.doses_in_central_rois(cal, roi = (20, 8), show=True)\n",
+    "print(doses_in_central_rois)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "763ad3ac-ad67-4c1d-8399-356f2378c0c4",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "type(doses_in_central_rois)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "1a918512-fca6-428c-b862-b4cdb6c058d0",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dose_img.save_as_tif(\"tif_from_function\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5a9244a8-e8dd-427c-9584-44acf5c72e99",
+   "metadata": {},
+   "source": [
+    "### Numpy to bytes and cGy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "859239af-deb2-415b-8d00-2df6744bea58",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import imageio.v3 as iio\n",
+    "#%matplotlib qt\n",
+    "\n",
+    "data = np.int64(dose_img.array*100) # Gy to cGy\n",
+    "\n",
+    "np_tif = data.astype(np.uint16)\n",
+    "png_encoded = iio.imwrite(\"<bytes>\", np_tif, extension=\".tif\")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0ec8aad7-e659-458f-9e61-6314995e6bf4",
+   "metadata": {},
+   "source": [
+    "### Save as a tiff file (useful for imageJ analysis)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "516b4775-2544-44ea-8da0-7352e38a3c82",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "with open('test.tif', 'wb') as f: \n",
+    "    f.write(png_encoded)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "16918514-cf0f-4570-ad9c-da764c4ff403",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib qt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "39379ae3-3aab-476b-9581-cd68a0979dff",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.imshow(dose_img.array)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fee433c6-fd31-4ba6-85b2-2ae97a651f05",
+   "metadata": {},
+   "source": [
+    "## Calibración con vidrio y tapa"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5e8cdb56-0c20-4567-a911-4aa9e38a5e1d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#file_path_3 = Path(\"/home/luis/Downloads\") / \"POS48_3.tif\"  # Office PC\n",
+    "file_path_3 = Path(\"/home/luis/Descargas\") / \"POS48_3.tif\" # Personal laptop\n",
+    "cal_image_3 = load(file_path_3, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "38562950-a2da-44fa-a30f-6ee385666ecf",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_3 = cal_image_3.get_calibration(doses = imparted_doses, channel = \"B\", roi = (16, 8), func = \"P3\")\n",
+    "cal_3.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4a08839d-e820-46bd-8899-8277818bd620",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_image_3.get_stat(ch = 'B', roi = (16, 8), show = True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1637a277-be52-4943-91d0-fe73fb60fcf6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#verif_path_3 = Path(\"/home/luis/Downloads\") / \"VERIFICACION_3.tif\"  # Office PC\n",
+    "verif_path_3 = Path(\"/home/luis/Descargas\") / \"VERIFICACION_3.tif\" # Personal laptop\n",
+    "verif_3 = load(verif_path_3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7e34a013-cc7f-436d-a053-65d50e811f87",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "mean_pixel_3, _ = verif_3.get_stat(ch = \"B\", roi = (30, 10), show = True)\n",
+    "mean_pixel_3 = sorted(mean_pixel_3, reverse = True)\n",
+    "#mean_pixel\n",
+    "\n",
+    "optical_density_3 = -np.log10(np.array(mean_pixel_3)/mean_pixel_3[0])\n",
+    "\n",
+    "dosis_from_fit_3 = polynomial_g3(optical_density_3, *cal_3.popt)\n",
+    "dosis_from_fit_3[dosis_from_fit_3 < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "print(f\"Dosis por ajuste: {dosis_from_fit_3}\")\n"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/GUI.py b/src/Dosepy/GUI.py
index 49bfa7e..75d79e0 100644
--- a/src/Dosepy/GUI.py
+++ b/src/Dosepy/GUI.py
@@ -327,34 +327,6 @@ def Compare_profiles(self):
         self.profile_plot.show()
 
 
-    def Cortar_Imagen(self):
-
-        xi = int(self.Bloque_Imagen.Mpl_Izq.Rectangle.get_x())
-        width = int(self.Bloque_Imagen.Mpl_Izq.Rectangle.get_width())
-        yi = int(self.Bloque_Imagen.Mpl_Izq.Rectangle.get_y())
-        height = int(self.Bloque_Imagen.Mpl_Izq.Rectangle.get_height())
-
-        npI_Izq = self.Bloque_Imagen.Mpl_Izq.npI[  yi : yi + height , xi : xi + width ]
-        npI_Der = self.Bloque_Imagen.Mpl_Der.npI[  yi : yi + height , xi : xi + width ]
-        self.Bloque_Imagen.D_ref = dp.Dose(npI_Izq, self.Bloque_Imagen.D_ref.resolution)
-        self.Bloque_Imagen.D_eval = dp.Dose(npI_Der, self.Bloque_Imagen.D_eval.resolution)
-
-        self.Bloque_Imagen.Mpl_Izq.Img(self.Bloque_Imagen.D_ref)
-        self.Bloque_Imagen.Mpl_Der.Img(self.Bloque_Imagen.D_eval)
-
-        self.Bloque_Imagen.Mpl_Izq.Colores(npI_Der)
-        self.Bloque_Imagen.Mpl_Der.Colores(npI_Der)
-
-        self.Bloque_Imagen.Mpl_Izq.Cross_Hair_on()
-        self.Bloque_Imagen.Mpl_Der.Cross_Hair_on()
-
-        self.Bloque_Imagen.Mpl_perfiles.set_data_and_plot(npI_Izq, npI_Der, self.Bloque_Imagen.Mpl_Izq.circ)
-
-        self.Bloque_Imagen.Mpl_Izq.ROI_Rect_off()
-        self.Bloque_Imagen.boton_recortar_Izq.setEnabled(False)
-        self.Bloque_Imagen.boton_roi.setChecked(False)
-
-
 ######################################################################
 #   Ventanas para mensajes
     def displayMessageBox(self):
diff --git a/src/Dosepy/learn_github_actions.yml b/src/Dosepy/learning_github_actions.yml
similarity index 100%
rename from src/Dosepy/learn_github_actions.yml
rename to src/Dosepy/learning_github_actions.yml
diff --git a/src/Dosepy/scripts/.ipynb_checkpoints/Cal48H_14DIC23-checkpoint.ipynb b/src/Dosepy/scripts/.ipynb_checkpoints/Cal48H_14DIC23-checkpoint.ipynb
new file mode 100644
index 0000000..48cf923
--- /dev/null
+++ b/src/Dosepy/scripts/.ipynb_checkpoints/Cal48H_14DIC23-checkpoint.ipynb
@@ -0,0 +1,332 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "3a501289-6d7e-4e0d-ab76-e85eca296d50",
+   "metadata": {},
+   "source": [
+    "## Calibración a 48H (Alejandro)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e08b5a51-de07-4317-88db-e104a3240ae3",
+   "metadata": {},
+   "source": [
+    "### Importar librerias"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "af2c510f-3190-4d6a-80ca-025904a65db7",
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "ImportError",
+     "evalue": "attempted relative import with no known parent package",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mImportError\u001b[0m                               Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mDosepy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtools\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mimage\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m load\n\u001b[1;32m      2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpathlib\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Path\n",
+      "\u001b[0;31mImportError\u001b[0m: attempted relative import with no known parent package"
+     ]
+    }
+   ],
+   "source": [
+    "from Dosepy.tools.image import load\n",
+    "from pathlib import Path"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "db552020-1ec0-4516-9c09-7b6c5165c69e",
+   "metadata": {},
+   "source": [
+    "### Dosis usadas para calibración"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "49b88b41-aac0-4c21-bc08-3a4d97521fc0",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "imparted_doses = [0, 0.5, 1, 1.5, 2, 3, 5, 8, 10]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "96479326-4be1-427d-8b9c-1ab4c823767c",
+   "metadata": {},
+   "source": [
+    "### Lectura de archivo para calibración\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f4781cf1-42b7-4144-8b97-8263c0332160",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "file_path = Path(\"/home/luis/Downloads\") / \"POS48_1.tif\"  # Office PC\n",
+    "#file_path = Path(\"/home/luis/Descargas\") / \"POS48_1.tif\" # Personal laptop\n",
+    "cal_image = load(file_path, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ec60e9cc-a1a6-404e-8c54-2cccd07e5a62",
+   "metadata": {},
+   "source": [
+    "### Obtener curva de calibración\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e90e811d-eafa-4795-af00-6b72cd25e09a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal = cal_image.get_calibration(doses = imparted_doses, channel = \"B\", roi = (16, 8), func = \"P3\")\n",
+    "cal.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fc0b2fb1-26c3-4b75-a00d-c62afee5ad4e",
+   "metadata": {},
+   "source": [
+    "### Mostrar ROIs y valores medios de pixel."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3b493587-49f4-45b0-b168-011f51e8932d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_image.get_stat(ch = 'B', roi = (16, 8), show = True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b10b0b34-a8ec-475e-83bb-0d9f5d3b481a",
+   "metadata": {},
+   "source": [
+    "## Verificación"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8eff59f8-b7d2-432d-a03f-604edc5536dd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#Lectura de archivo\n",
+    "verif_path = Path(\"/home/luis/Downloads\") / \"VERIFICACION_1.tif\"  # Office PC\n",
+    "#verif_path = Path(\"/home/luis/Descargas\") / \"VERIFICACION_1.tif\" # Personal laptop\n",
+    "verif = load(verif_path)\n",
+    "\n",
+    "dose_img = verif.to_dose(cal)\n",
+    "\n",
+    "import matplotlib.pyplot as plt\n",
+    "fig, ax = plt.subplots(ncols=1)\n",
+    "\n",
+    "# plot and save the\n",
+    "# color \"mappable\" object returned by ax1.imshow\n",
+    "pos = ax.imshow(dose_img)\n",
+    "\n",
+    "# add the colorbar using the figure's method,\n",
+    "# telling which mappable we're talking about and\n",
+    "# which axes object it should be near\n",
+    "fig.colorbar(pos, ax=ax)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2dc63bd5-efde-4e4a-ac68-10c45f934593",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "from calibration import polynomial_g3\n",
+    "\n",
+    "mean_pixel, _ = verif.get_stat(ch = \"B\", roi = (30, 10), show = True)\n",
+    "mean_pixel = sorted(mean_pixel, reverse = True)\n",
+    "#mean_pixel\n",
+    "\n",
+    "optical_density = -np.log10(np.array(mean_pixel)/mean_pixel[0])\n",
+    "\n",
+    "dosis_from_fit = polynomial_g3(optical_density, *cal.popt)\n",
+    "dosis_from_fit[dosis_from_fit < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "print(f\"Dosis por ajuste: {dosis_from_fit}\")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5a9244a8-e8dd-427c-9584-44acf5c72e99",
+   "metadata": {},
+   "source": [
+    "### Numpy to bytes and cGy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "859239af-deb2-415b-8d00-2df6744bea58",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import imageio.v3 as iio\n",
+    "#%matplotlib qt\n",
+    "\n",
+    "data = np.int64(dose_img*100) # Gy to cGy\n",
+    "\n",
+    "np_tif = data.astype(np.uint16)\n",
+    "png_encoded = iio.imwrite(\"<bytes>\", np_tif, extension=\".tif\")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0ec8aad7-e659-458f-9e61-6314995e6bf4",
+   "metadata": {},
+   "source": [
+    "### Save as a tiff file (useful for imageJ analysis)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "516b4775-2544-44ea-8da0-7352e38a3c82",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "with open('test.tif', 'wb') as f: \n",
+    "    f.write(png_encoded)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "16918514-cf0f-4570-ad9c-da764c4ff403",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib qt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "39379ae3-3aab-476b-9581-cd68a0979dff",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.imshow(dose_img)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fee433c6-fd31-4ba6-85b2-2ae97a651f05",
+   "metadata": {},
+   "source": [
+    "## Calibración con vidrio y tapa"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5e8cdb56-0c20-4567-a911-4aa9e38a5e1d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "file_path_3 = Path(\"/home/luis/Downloads\") / \"POS48_3.tif\"  # Office PC\n",
+    "#file_path = Path(\"/home/luis/Descargas\") / \"POS48_3.tif\" # Personal laptop\n",
+    "cal_image_3 = load(file_path_3, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "38562950-a2da-44fa-a30f-6ee385666ecf",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_3 = cal_image_3.get_calibration(doses = imparted_doses, channel = \"B\", roi = (16, 8), func = \"P3\")\n",
+    "cal_3.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4a08839d-e820-46bd-8899-8277818bd620",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cal_image_3.get_stat(ch = 'B', roi = (16, 8), show = True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1637a277-be52-4943-91d0-fe73fb60fcf6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "verif_path_3 = Path(\"/home/luis/Downloads\") / \"VERIFICACION_3.tif\"  # Office PC\n",
+    "#verif_path = Path(\"/home/luis/Descargas\") / \"VERIFICACION_3.tif\" # Personal laptop\n",
+    "verif_3 = load(verif_path_3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7e34a013-cc7f-436d-a053-65d50e811f87",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "mean_pixel_3, _ = verif_3.get_stat(ch = \"B\", roi = (30, 10), show = True)\n",
+    "mean_pixel_3 = sorted(mean_pixel_3, reverse = True)\n",
+    "#mean_pixel\n",
+    "\n",
+    "optical_density_3 = -np.log10(np.array(mean_pixel_3)/mean_pixel_3[0])\n",
+    "\n",
+    "dosis_from_fit_3 = polynomial_g3(optical_density_3, *cal_3.popt)\n",
+    "dosis_from_fit_3[dosis_from_fit_3 < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "print(f\"Dosis por ajuste: {dosis_from_fit_3}\")\n"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/scripts/.ipynb_checkpoints/Rational function for calibration-checkpoint.ipynb b/src/Dosepy/scripts/.ipynb_checkpoints/Rational function for calibration-checkpoint.ipynb
new file mode 100644
index 0000000..a1af9b8
--- /dev/null
+++ b/src/Dosepy/scripts/.ipynb_checkpoints/Rational function for calibration-checkpoint.ipynb
@@ -0,0 +1,313 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "ac43859f-d20b-4abc-967b-e831e05034ca",
+   "metadata": {},
+   "source": [
+    "# Rational fit function used for calibration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "9c2b4bea-2c31-4019-a40e-590129d73454",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from image import load\n",
+    "from pathlib import Path"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "06280751-7cd9-49e4-b55d-d3ccbe5224d2",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Dosis usadas para calibración¶\n",
+    "imparted_doses = [0, 0.5, 1, 1.5, 2, 3, 5, 8, 10]\n",
+    "\n",
+    "# Lectura de archivo para calibración¶\n",
+    "file_path = Path(\"/home/luis/Downloads\") / \"POS48_1.tif\"  # Office PC\n",
+    "#file_path = Path(\"/home/luis/Descargas\") / \"POS48_1.tif\" # Personal laptop\n",
+    "cal_image = load(file_path, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7542dfec-3bab-4263-acd1-281b358219d3",
+   "metadata": {},
+   "source": [
+    "## Calibration using a polynomial of degree 3"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "3b13e6d5-87e5-44e1-a370-9b3200a93897",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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qzZt2uijjz7SypUrtWbNGm3fvj3dczO6Nk899ZSWLl2qcePG6fLly7r//vsz/e8DSEWQAfzQmDFjlJCQoJYtW+qnn35SdHS0Fi1apDvvvFM33HCD3n777TTnr169WsOHD9eePXs0duxYzZs3T7169Uo5nhxSYmJi9M8//6T7bw4ePFjvv/++PvroI+3du1ebN2/W6NGjJZlWokuXLmn06NH6448/NH36dE2YMCFL7+nRRx+Vw+HQ008/rZ07d+r777/XiBEj0pzTvXt3nTp1Su3bt9eGDRu0f/9+/fjjj+rcufM1g9iVpkyZos8++0w7duzQH3/8oRkzZihv3ryKiIhI9/yMrk3lypVVv3599evXT+3bt79uqxWA9BFkAD9UoUIFbdy4UTfeeKMefvhh3XTTTeratauaNm2qNWvWqGjRomnO7927tzZu3KiaNWvqrbfe0siRI9WyZcuU4++//76WLFmi8PBw1axZM91/s2PHjho1apTGjRunKlWq6O6779bevXslSdWrV9fIkSM1bNgw3XLLLZo5c6aGDh2apfdUoEABffPNN9q+fbtq1qypgQMHatiwYWnOKV26tFavXq3ExES1aNFCVatW1QsvvKDChQtnerRQ4cKFNXHiRDVs2FDVqlXT0qVL9c0332Q4Z861rk2XLl108eJFbisBOeCwstLjD4DfiYyM1AsvvKAXXnjB7lJ8zpAhQzRv3jz9+uuvdpcCeC1aZADAzeLj47Vjxw6NGTNGPXr0sLscwKsRZADAzZ5//nnVrl1bTZo04bYSkEPcWgIAAF6LFhkAAOC1CDIAAMBrEWQAAIDXIsgAAACvRZABAABeiyADAAC8FkEGAAB4LYIMAADwWv8Pw1uBCCGlih8AAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: xlabel='Optical density', ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from calibration import rational_func, polynomial_g3\n",
+    "\n",
+    "cal_OD = cal_image.get_calibration(doses = imparted_doses, func = \"P3\", channel = \"B\", roi = (16, 8))\n",
+    "cal_OD.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e2049c6c-ad26-4ff1-9549-fb8969de6e18",
+   "metadata": {},
+   "source": [
+    "## Calibration using rational function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "bcb756e2-b628-4b1f-b5fd-f59c4e8b4b02",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGzCAYAAAA1yP25AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABF10lEQVR4nO3dd3RUdf7/8dekR0hCTQAJEEJvBokiRSnisoIFK+4PaTZ2xQarfCmLDSWy6yIuKoirBBBFUWRdQUARZFFEWpAivQoSahJqgOT+/vgwE0ISSJmZO5M8H+fcc+/ce2d43wSZl/d+isOyLEsAAAB+KMDuAgAAAIqLIAMAAPwWQQYAAPgtggwAAPBbBBkAAOC3CDIAAMBvEWQAAIDfIsgAAAC/RZABAAB+iyADoFA6duyojh07ul7v2rVLDodDycnJXq2jX79+qlOnjts+b/HixXI4HFq8eLHbPvNSDodDL774osc+Pz92/X4AbyPIAG6SnJwsh8OhsLAw7du3L8/xjh07qlmzZjZUBgClV5DdBQClTWZmpl577TWNHz/e7lI8qnbt2jp9+rSCg4PtLqVEbrrpJp0+fVohISF2lwKgGLgjA7hZQkKC3nvvPe3fv99jf4ZlWTp9+rTHPr8wnHefAgMDba2jpAICAhQWFqaAAP45BPwR/+UCbjZ8+HBlZWXptddeu+K558+f16hRoxQfH6/Q0FDVqVNHw4cPV2ZmZq7z6tSpo9tuu03z589XYmKiwsPD9e6777rad3z66ad66aWXdPXVVysiIkL33nuv0tPTlZmZqWeeeUbR0dEqX768+vfvn+ezJ0+erM6dOys6OlqhoaFq0qSJJkyYcMXaL22D4awlv+XSNi1ff/21brzxRpUrV04RERHq3r27NmzYkOfPmD17tpo1a6awsDA1a9ZMX3zxxRXruvRntmDBAiUkJCgsLExNmjTRrFmzcp13aRuZX3/9VeHh4erTp0+u85YuXarAwED93//9n2tfWlqannnmGcXGxio0NFT16tXTmDFjlJ2dXeg6JSk1NVVBQUF66aWX8hzbvHmzHA6H3nrrLUnS0aNH9eyzz6p58+YqX768IiMjdeutt2rt2rVX/HMubefklF+7o+zsbI0bN05NmzZVWFiYYmJiNGDAAB07dqxI1wZ4Go+WADeLi4tTnz599N5772no0KGqUaNGgec+8sgjmjJliu6991799a9/1fLly5WUlKRff/01z5f25s2b9ac//UkDBgzQo48+qoYNG7qOJSUlKTw8XEOHDtW2bds0fvx4BQcHKyAgQMeOHdOLL76on376ScnJyYqLi9Pzzz/veu+ECRPUtGlT3XHHHQoKCtJ///tfPf7448rOztbAgQMLfd2NGzfWtGnTcu1LS0vT4MGDFR0d7do3bdo09e3bV127dtWYMWN06tQpTZgwQe3bt9eaNWtcX6gLFizQPffcoyZNmigpKUlHjhxR//79VbNmzULXtHXrVvXs2VN//vOf1bdvX02ePFn33Xef5s2bp1tuuaXA6xg1apSee+453Xvvvbrjjjt08uRJ9evXT40aNdLLL78sSTp16pQ6dOigffv2acCAAapVq5Z+/PFHDRs2TL///rvGjRtX6DpjYmLUoUMHffrpp3rhhRdyHfvkk08UGBio++67T5K0Y8cOzZ49W/fdd5/i4uKUmpqqd999Vx06dNDGjRsv+/etKAYMGKDk5GT1799fTz31lHbu3Km33npLa9as0Q8//OD3jxRRilgA3GLy5MmWJGvFihXW9u3braCgIOupp55yHe/QoYPVtGlT1+uUlBRLkvXII4/k+pxnn33WkmR99913rn21a9e2JFnz5s3Lde6iRYssSVazZs2ss2fPuvb/6U9/shwOh3XrrbfmOr9NmzZW7dq1c+07depUnmvp2rWrVbdu3Vz7OnToYHXo0MH1eufOnZYka/Lkyfn+PLKzs63bbrvNKl++vLVhwwbLsizr+PHjVoUKFaxHH30017kHDhywoqKicu1PSEiwqlevbqWlpbn2LViwwJKU5xry4/yZff7556596enpVvXq1a2WLVu69jl/hosWLXLty8rKstq3b2/FxMRYhw8ftgYOHGgFBQVZK1ascJ0zatQoq1y5ctaWLVty/blDhw61AgMDrT179rj2SbJeeOGFy9b77rvvWpKsdevW5drfpEkTq3Pnzq7XZ86csbKysnKds3PnTis0NNR6+eWXc+279Pdz6e/QqW/fvrl+pv/73/8sSdb06dNznTdv3rx89wN24tES4AF169ZV7969NWnSJP3+++/5njN37lxJ0uDBg3Pt/+tf/ypJmjNnTq79cXFx6tq1a76f1adPn1z/h9y6dWtZlqWHHnoo13mtW7fW3r17df78ede+8PBw13Z6eroOHz6sDh06aMeOHUpPT7/SpRZo1KhR+uqrr5ScnKwmTZpIkr755hulpaXpT3/6kw4fPuxaAgMD1bp1ay1atEiS9PvvvyslJUV9+/ZVVFSU6zNvueUW12cVRo0aNXTXXXe5XkdGRqpPnz5as2aNDhw4UOD7AgIClJycrBMnTujWW2/VO++8o2HDhikxMdF1zsyZM3XjjTeqYsWKua6lS5cuysrK0pIlSwpdpyTdfffdCgoK0ieffOLat379em3cuFE9e/Z07QsNDXW158nKytKRI0dUvnx5NWzYUKtXry7Sn1mQmTNnKioqSrfcckuua2vVqpXKly/v+j0BvoAgA3jI3/72N50/f77AtjK7d+9WQECA6tWrl2t/tWrVVKFCBe3evTvX/ri4uAL/rFq1auV67fzyj42NzbM/Ozs7V0D54Ycf1KVLF5UrV04VKlRQ1apVNXz4cEkqdpCZN2+eXnrpJQ0bNkz33HOPa//WrVslSZ07d1bVqlVzLQsWLNDBgwclyXXt9evXz/PZFz9Su5J69erJ4XDk2tegQQNJpo3P5cTHx+vFF1/UihUr1LRpU40cOTLX8a1bt2revHl5rqNLly6S5LqWwqpSpYpuvvlmffrpp659n3zyiYKCgnT33Xe79mVnZ+uNN95Q/fr1FRoaqipVqqhq1ar65ZdfShQ8L7229PR0RUdH57m+EydOFPnaAE+ijQzgIXXr1tWDDz6oSZMmaejQoQWed+kXbUEuvnNyqYJ6DhW037IsSdL27dt18803q1GjRho7dqxiY2MVEhKiuXPn6o033ihyo1VJ2rlzp3r16qVbbrlFr7zySq5jzs+bNm2aqlWrlue9QUG+9U/SggULJEn79+/XkSNHctWcnZ2tW265RUOGDMn3vc7AVBQPPPCA+vfvr5SUFCUkJOjTTz/VzTffrCpVqrjOGT16tEaOHKmHHnpIo0aNUqVKlRQQEKBnnnnmir8vh8Ph+t1fLCsrK9fr7OxsRUdHa/r06fl+TtWqVYt8bYCn+Na/GkAp87e//U0ffvihxowZk+dY7dq1lZ2dra1bt6px48au/ampqUpLS1Pt2rU9Xt9///tfZWZm6ssvv8x1V6e4jw5Onz6tu+++WxUqVNDHH3+cp0tzfHy8JCk6Otp15yI/zmt33sG52ObNmwtdz7Zt22RZVq6wuGXLFkm64ujAEydO1DfffKNXX31VSUlJGjBggP7zn//kupYTJ05c9jqKqkePHhowYIDr8dKWLVs0bNiwXOd89tln6tSpk95///1c+9PS0nIFnvxUrFhRO3bsyLP/0rt/8fHx+vbbb9WuXbvLBmjAF/BoCfCg+Ph4Pfjgg3r33XfztMno1q2bJOXp3TJ27FhJUvfu3T1en/OOzcX/l56enq7JkycX6/P+/Oc/a8uWLfriiy9UsWLFPMe7du2qyMhIjR49WufOnctz/NChQ5Kk6tWrKyEhQVOmTMn1uOSbb77Rxo0bC13P/v37c/X+ysjI0NSpU5WQkJDvHSGnnTt36rnnntM999yj4cOH6/XXX9eXX36pqVOnus65//77tWzZMs2fPz/P+9PS0nK1QyqsChUqqGvXrvr00081Y8YMhYSEqEePHrnOCQwMzHNXZebMmfmOJn2p+Ph4bdq0yfVzlqS1a9fqhx9+yHXe/fffr6ysLI0aNSrPZ5w/f15paWmFvyjAw7gjA3jYiBEjNG3aNG3evFlNmzZ17b/mmmvUt29fTZo0SWlpaerQoYN+/vlnTZkyRT169FCnTp08Xtsf/vAHhYSE6Pbbb9eAAQN04sQJvffee4qOji6wkXJB5syZo6lTp+qee+7RL7/8ol9++cV1rHz58urRo4ciIyM1YcIE9e7dW9dee60eeOABVa1aVXv27NGcOXPUrl0713gpSUlJ6t69u9q3b6+HHnpIR48e1fjx49W0aVOdOHGiUDU1aNBADz/8sFasWKGYmBh98MEHSk1NvWxQczaSDg8Pd42nM2DAAH3++ed6+umn1aVLF9WoUUPPPfecvvzyS912223q16+fWrVqpZMnT2rdunX67LPPtGvXriveIclPz5499eCDD+qdd95R165dVaFChVzHb7vtNr388svq37+/2rZtq3Xr1mn69OmqW7fuFT/7oYce0tixY9W1a1c9/PDDOnjwoCZOnKimTZsqIyPDdV6HDh00YMAAJSUlKSUlRX/4wx8UHBysrVu3aubMmXrzzTd17733FvnaAI+wsccUUKpc3P36Un379rUk5ep+bVmWde7cOeull16y4uLirODgYCs2NtYaNmyYdebMmVzn1a5d2+revXuez3V2HZ45c2ahannhhRcsSdahQ4dc+7788kurRYsWVlhYmFWnTh1rzJgx1gcffGBJsnbu3Ok6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W7fO9fo///mPevTooeHDh+vs2bPF+UiURM2a0i23mG1G+gUAlCHFCjIDBgzQli1bJEk7duxQz549ddVVV2nmzJkaMmSIWwtEITnHlJk0SerUSVq50t56AADwgmIFmS1btighIUGSNHPmTHXo0EEfffSRkpOT9fnnn7uzPhRWjx5S5cpSaqq0eLE0bZrdFQEA4HHFCjKWZSn7wkiy3377rbp16yZJio2N1eHDh91XHQpn925pwwbpttty9s2YIa1eLa1aZY4DAFAKFav7dWJiol555RV16dJF33//vSZMmCBJ2rlzp2JiYtxaIAqhTp28+w4elC7uQVa623QDAMqoYt2RGTdunFavXq0nnnhCI0aMUL169SRJn332mdq2bevWAlEIH34oBRWQSYOCzHEAAEoht3a/PnPmjAIDAxUcHOyujyyxMtH9WjKPkfIbw2fVKunaa71fDwAAJVDY7+9iPVpyWrVqlX799VdJUpMmTXQtX5j2CwhgJmwAQJlRrCBz8OBB9ezZU99//70qVKggSUpLS1OnTp00Y8YMVa1a1Z01ojCio6Vq1aTYWKluXemTT6TAQInfBQCgFCtWG5knn3xSJ06c0IYNG3T06FEdPXpU69evV0ZGhp566il314jCqFlT2rVLWr7cjCVTrpyUlWXmYAIAoJQqVpCZN2+e3nnnHTVu3Ni1r0mTJnr77bf19ddfu604FFFoqJl7KTIyZ/6lt96ytSQAADypWEEmOzs73wa9wcHBrvFlYLOBA836P/+R9uyxtxYAADykWEGmc+fOevrpp7V//37Xvn379mnQoEG6+eab3VYcSqBxY+nmm03D3/Hj7a4GAACPKFaQeeutt5SRkaE6deooPj5e8fHxiouLU0ZGhsbzpek7Bg0y64kTpWPH7K0FAAAPKFavpdjYWK1evVoLFy50db9u3LixunTp4tbiUELduknNmknr10sTJkjDh9tdEQAAblXkIJOdna3k5GTNmjVLu3btksPhUFxcnKKiomRZlhwOhyfqRHE4HNLQodKDD0rjxpk7NOHhdlcFAIDbFOnRkmVZuuOOO/TII49o3759at68uZo2bardu3erX79+uuuuuzxVJ4qrZ08zF9OhQ9LkyXZXAwCAWxUpyCQnJ2vJkiVauHCh1qxZo48//lgzZszQ2rVr9e233+q7777T1KlTPVUriiMoSHr2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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_R = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"R\", roi = (16, 8))\n",
+    "cal_RF_R.plot(color = 'red')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "25aec8a4-91f8-4199-a272-826e8747751f",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_G = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"G\", roi = (16, 8))\n",
+    "cal_RF_G.plot(color = 'green')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "1dae48fa-ffae-48a4-b81b-f3a20b946161",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_B = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"B\", roi = (16, 8))\n",
+    "cal_RF_B.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "29f0ddce-c0a3-4456-8129-1d3a5cef61ca",
+   "metadata": {},
+   "source": [
+    "## Dose verification"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "b60a7452-9af6-453a-8b04-c123e9b214cb",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 3\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Lectura de archivo\n",
+    "verif_path = Path(\"/home/luis/Downloads\") / \"VERIFICACION_1.tif\"  # Office PC\n",
+    "#verif_path = Path(\"/home/luis/Descargas\") / \"VERIFICACION_1.tif\" # Personal laptop\n",
+    "verif = load(verif_path)\n",
+    "\n",
+    "dose_img = verif.to_dose(cal_RF_R)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "id": "6988f45e-1c34-4e90-8e56-c25a3c003747",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 3\n",
+      "Number of images detected: 3\n",
+      "Number of images detected: 3\n",
+      "Dosis en canal rojo: [0.00963348 0.51529858 5.01220582]\n",
+      "Dosis en canal verde: [0.07911956 0.56635226 5.06235789]\n",
+      "Dosis en canal azul: [0.         0.52612424 4.95190513]\n"
+     ]
+    }
+   ],
+   "source": [
+    "import numpy as np\n",
+    "from calibration import polynomial_g3\n",
+    "\n",
+    "mean_pixel_r, _ = verif.get_stat(ch = \"R\", roi = (30, 10), show = False)\n",
+    "mean_pixel_r = sorted(mean_pixel_r, reverse = True)\n",
+    "mean_pixel_g, _ = verif.get_stat(ch = \"G\", roi = (30, 10), show = False)\n",
+    "mean_pixel_g = sorted(mean_pixel_g, reverse = True)\n",
+    "mean_pixel_b, _ = verif.get_stat(ch = \"B\", roi = (30, 10), show = False)\n",
+    "mean_pixel_b = sorted(mean_pixel_b, reverse = True)\n",
+    "#mean_pixel\n",
+    "\n",
+    "#optical_density_r = -np.log10(np.array(mean_pixel_r)/mean_pixel_r[0])\n",
+    "x_r = np.array(mean_pixel_r) / mean_pixel_r[0]\n",
+    "x_g = np.array(mean_pixel_g) / mean_pixel_g[0]\n",
+    "x_b = np.array(mean_pixel_b) / mean_pixel_b[0]\n",
+    "\n",
+    "dosis_from_fit_r = rational_func(x_r, *cal_RF_R.popt)\n",
+    "dosis_from_fit_r[dosis_from_fit_r < 0] = 0 # Remove doses < 0\n",
+    "dosis_from_fit_g = rational_func(x_g, *cal_RF_G.popt)\n",
+    "dosis_from_fit_g[dosis_from_fit_g < 0] = 0 # Remove doses < 0\n",
+    "dosis_from_fit_b = rational_func(x_b, *cal_RF_B.popt)\n",
+    "dosis_from_fit_b[dosis_from_fit_b < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "print(f\"Dosis en canal rojo: {dosis_from_fit_r}\")\n",
+    "print(f\"Dosis en canal verde: {dosis_from_fit_g}\")\n",
+    "print(f\"Dosis en canal azul: {dosis_from_fit_b}\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/scripts/.ipynb_checkpoints/Readme-checkpoint.ipynb b/src/Dosepy/scripts/.ipynb_checkpoints/Readme-checkpoint.ipynb
new file mode 100644
index 0000000..8ee4de1
--- /dev/null
+++ b/src/Dosepy/scripts/.ipynb_checkpoints/Readme-checkpoint.ipynb
@@ -0,0 +1,45 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "307be978-30cc-4091-8331-d8e4e662723a",
+   "metadata": {},
+   "source": [
+    "## Installation (under development)\n",
+    "\n",
+    "1. Open a terminal\n",
+    "2. Create a conda environment\n",
+    "   ```\n",
+    "   conda create -n myenv python=3.10\n",
+    "   conda activate myenv\n",
+    "   ```\n",
+    "\n",
+    "3. Intall Dosepy\n",
+    "   ```\n",
+    "   pip install -i https://test.pypi.org/simple/ Dosepy==0.4.1\n",
+    "   ```"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/scripts/Rational function for calibration.ipynb b/src/Dosepy/scripts/Rational function for calibration.ipynb
new file mode 100644
index 0000000..a1af9b8
--- /dev/null
+++ b/src/Dosepy/scripts/Rational function for calibration.ipynb
@@ -0,0 +1,313 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "ac43859f-d20b-4abc-967b-e831e05034ca",
+   "metadata": {},
+   "source": [
+    "# Rational fit function used for calibration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "9c2b4bea-2c31-4019-a40e-590129d73454",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from image import load\n",
+    "from pathlib import Path"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "06280751-7cd9-49e4-b55d-d3ccbe5224d2",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Dosis usadas para calibración¶\n",
+    "imparted_doses = [0, 0.5, 1, 1.5, 2, 3, 5, 8, 10]\n",
+    "\n",
+    "# Lectura de archivo para calibración¶\n",
+    "file_path = Path(\"/home/luis/Downloads\") / \"POS48_1.tif\"  # Office PC\n",
+    "#file_path = Path(\"/home/luis/Descargas\") / \"POS48_1.tif\" # Personal laptop\n",
+    "cal_image = load(file_path, for_calib = True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7542dfec-3bab-4263-acd1-281b358219d3",
+   "metadata": {},
+   "source": [
+    "## Calibration using a polynomial of degree 3"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "3b13e6d5-87e5-44e1-a370-9b3200a93897",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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qzZt2uijjz7SypUrtWbNGm3fvj3dczO6Nk899ZSWLl2qcePG6fLly7r//vsz/e8DSEWQAfzQmDFjlJCQoJYtW+qnn35SdHS0Fi1apDvvvFM33HCD3n777TTnr169WsOHD9eePXs0duxYzZs3T7169Uo5nhxSYmJi9M8//6T7bw4ePFjvv/++PvroI+3du1ebN2/W6NGjJZlWokuXLmn06NH6448/NH36dE2YMCFL7+nRRx+Vw+HQ008/rZ07d+r777/XiBEj0pzTvXt3nTp1Su3bt9eGDRu0f/9+/fjjj+rcufM1g9iVpkyZos8++0w7duzQH3/8oRkzZihv3ryKiIhI9/yMrk3lypVVv3599evXT+3bt79uqxWA9BFkAD9UoUIFbdy4UTfeeKMefvhh3XTTTeratauaNm2qNWvWqGjRomnO7927tzZu3KiaNWvqrbfe0siRI9WyZcuU4++//76WLFmi8PBw1axZM91/s2PHjho1apTGjRunKlWq6O6779bevXslSdWrV9fIkSM1bNgw3XLLLZo5c6aGDh2apfdUoEABffPNN9q+fbtq1qypgQMHatiwYWnOKV26tFavXq3ExES1aNFCVatW1QsvvKDChQtnerRQ4cKFNXHiRDVs2FDVqlXT0qVL9c0332Q4Z861rk2XLl108eJFbisBOeCwstLjD4DfiYyM1AsvvKAXXnjB7lJ8zpAhQzRv3jz9+uuvdpcCeC1aZADAzeLj47Vjxw6NGTNGPXr0sLscwKsRZADAzZ5//nnVrl1bTZo04bYSkEPcWgIAAF6LFhkAAOC1CDIAAMBrEWQAAIDXIsgAAACvRZABAABeiyADAAC8FkEGAAB4LYIMAADwWv8Pw1uBCCGlih8AAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: xlabel='Optical density', ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from calibration import rational_func, polynomial_g3\n",
+    "\n",
+    "cal_OD = cal_image.get_calibration(doses = imparted_doses, func = \"P3\", channel = \"B\", roi = (16, 8))\n",
+    "cal_OD.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e2049c6c-ad26-4ff1-9549-fb8969de6e18",
+   "metadata": {},
+   "source": [
+    "## Calibration using rational function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "bcb756e2-b628-4b1f-b5fd-f59c4e8b4b02",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGzCAYAAAA1yP25AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABF10lEQVR4nO3dd3RUdf7/8dekR0hCTQAJEEJvBokiRSnisoIFK+4PaTZ2xQarfCmLDSWy6yIuKoirBBBFUWRdQUARZFFEWpAivQoSahJqgOT+/vgwE0ISSJmZO5M8H+fcc+/ce2d43wSZl/d+isOyLEsAAAB+KMDuAgAAAIqLIAMAAPwWQQYAAPgtggwAAPBbBBkAAOC3CDIAAMBvEWQAAIDfIsgAAAC/RZABAAB+iyADoFA6duyojh07ul7v2rVLDodDycnJXq2jX79+qlOnjts+b/HixXI4HFq8eLHbPvNSDodDL774osc+Pz92/X4AbyPIAG6SnJwsh8OhsLAw7du3L8/xjh07qlmzZjZUBgClV5DdBQClTWZmpl577TWNHz/e7lI8qnbt2jp9+rSCg4PtLqVEbrrpJp0+fVohISF2lwKgGLgjA7hZQkKC3nvvPe3fv99jf4ZlWTp9+rTHPr8wnHefAgMDba2jpAICAhQWFqaAAP45BPwR/+UCbjZ8+HBlZWXptddeu+K558+f16hRoxQfH6/Q0FDVqVNHw4cPV2ZmZq7z6tSpo9tuu03z589XYmKiwsPD9e6777rad3z66ad66aWXdPXVVysiIkL33nuv0tPTlZmZqWeeeUbR0dEqX768+vfvn+ezJ0+erM6dOys6OlqhoaFq0qSJJkyYcMXaL22D4awlv+XSNi1ff/21brzxRpUrV04RERHq3r27NmzYkOfPmD17tpo1a6awsDA1a9ZMX3zxxRXruvRntmDBAiUkJCgsLExNmjTRrFmzcp13aRuZX3/9VeHh4erTp0+u85YuXarAwED93//9n2tfWlqannnmGcXGxio0NFT16tXTmDFjlJ2dXeg6JSk1NVVBQUF66aWX8hzbvHmzHA6H3nrrLUnS0aNH9eyzz6p58+YqX768IiMjdeutt2rt2rVX/HMubefklF+7o+zsbI0bN05NmzZVWFiYYmJiNGDAAB07dqxI1wZ4Go+WADeLi4tTnz599N5772no0KGqUaNGgec+8sgjmjJliu6991799a9/1fLly5WUlKRff/01z5f25s2b9ac//UkDBgzQo48+qoYNG7qOJSUlKTw8XEOHDtW2bds0fvx4BQcHKyAgQMeOHdOLL76on376ScnJyYqLi9Pzzz/veu+ECRPUtGlT3XHHHQoKCtJ///tfPf7448rOztbAgQMLfd2NGzfWtGnTcu1LS0vT4MGDFR0d7do3bdo09e3bV127dtWYMWN06tQpTZgwQe3bt9eaNWtcX6gLFizQPffcoyZNmigpKUlHjhxR//79VbNmzULXtHXrVvXs2VN//vOf1bdvX02ePFn33Xef5s2bp1tuuaXA6xg1apSee+453Xvvvbrjjjt08uRJ9evXT40aNdLLL78sSTp16pQ6dOigffv2acCAAapVq5Z+/PFHDRs2TL///rvGjRtX6DpjYmLUoUMHffrpp3rhhRdyHfvkk08UGBio++67T5K0Y8cOzZ49W/fdd5/i4uKUmpqqd999Vx06dNDGjRsv+/etKAYMGKDk5GT1799fTz31lHbu3Km33npLa9as0Q8//OD3jxRRilgA3GLy5MmWJGvFihXW9u3braCgIOupp55yHe/QoYPVtGlT1+uUlBRLkvXII4/k+pxnn33WkmR99913rn21a9e2JFnz5s3Lde6iRYssSVazZs2ss2fPuvb/6U9/shwOh3XrrbfmOr9NmzZW7dq1c+07depUnmvp2rWrVbdu3Vz7OnToYHXo0MH1eufOnZYka/Lkyfn+PLKzs63bbrvNKl++vLVhwwbLsizr+PHjVoUKFaxHH30017kHDhywoqKicu1PSEiwqlevbqWlpbn2LViwwJKU5xry4/yZff7556596enpVvXq1a2WLVu69jl/hosWLXLty8rKstq3b2/FxMRYhw8ftgYOHGgFBQVZK1ascJ0zatQoq1y5ctaWLVty/blDhw61AgMDrT179rj2SbJeeOGFy9b77rvvWpKsdevW5drfpEkTq3Pnzq7XZ86csbKysnKds3PnTis0NNR6+eWXc+279Pdz6e/QqW/fvrl+pv/73/8sSdb06dNznTdv3rx89wN24tES4AF169ZV7969NWnSJP3+++/5njN37lxJ0uDBg3Pt/+tf/ypJmjNnTq79cXFx6tq1a76f1adPn1z/h9y6dWtZlqWHHnoo13mtW7fW3r17df78ede+8PBw13Z6eroOHz6sDh06aMeOHUpPT7/SpRZo1KhR+uqrr5ScnKwmTZpIkr755hulpaXpT3/6kw4fPuxaAgMD1bp1ay1atEiS9PvvvyslJUV9+/ZVVFSU6zNvueUW12cVRo0aNXTXXXe5XkdGRqpPnz5as2aNDhw4UOD7AgIClJycrBMnTujWW2/VO++8o2HDhikxMdF1zsyZM3XjjTeqYsWKua6lS5cuysrK0pIlSwpdpyTdfffdCgoK0ieffOLat379em3cuFE9e/Z07QsNDXW158nKytKRI0dUvnx5NWzYUKtXry7Sn1mQmTNnKioqSrfcckuua2vVqpXKly/v+j0BvoAgA3jI3/72N50/f77AtjK7d+9WQECA6tWrl2t/tWrVVKFCBe3evTvX/ri4uAL/rFq1auV67fzyj42NzbM/Ozs7V0D54Ycf1KVLF5UrV04VKlRQ1apVNXz4cEkqdpCZN2+eXnrpJQ0bNkz33HOPa//WrVslSZ07d1bVqlVzLQsWLNDBgwclyXXt9evXz/PZFz9Su5J69erJ4XDk2tegQQNJpo3P5cTHx+vFF1/UihUr1LRpU40cOTLX8a1bt2revHl5rqNLly6S5LqWwqpSpYpuvvlmffrpp659n3zyiYKCgnT33Xe79mVnZ+uNN95Q/fr1FRoaqipVqqhq1ar65ZdfShQ8L7229PR0RUdH57m+EydOFPnaAE+ijQzgIXXr1tWDDz6oSZMmaejQoQWed+kXbUEuvnNyqYJ6DhW037IsSdL27dt18803q1GjRho7dqxiY2MVEhKiuXPn6o033ihyo1VJ2rlzp3r16qVbbrlFr7zySq5jzs+bNm2aqlWrlue9QUG+9U/SggULJEn79+/XkSNHctWcnZ2tW265RUOGDMn3vc7AVBQPPPCA+vfvr5SUFCUkJOjTTz/VzTffrCpVqrjOGT16tEaOHKmHHnpIo0aNUqVKlRQQEKBnnnnmir8vh8Ph+t1fLCsrK9fr7OxsRUdHa/r06fl+TtWqVYt8bYCn+Na/GkAp87e//U0ffvihxowZk+dY7dq1lZ2dra1bt6px48au/ampqUpLS1Pt2rU9Xt9///tfZWZm6ssvv8x1V6e4jw5Onz6tu+++WxUqVNDHH3+cp0tzfHy8JCk6Otp15yI/zmt33sG52ObNmwtdz7Zt22RZVq6wuGXLFkm64ujAEydO1DfffKNXX31VSUlJGjBggP7zn//kupYTJ05c9jqKqkePHhowYIDr8dKWLVs0bNiwXOd89tln6tSpk95///1c+9PS0nIFnvxUrFhRO3bsyLP/0rt/8fHx+vbbb9WuXbvLBmjAF/BoCfCg+Ph4Pfjgg3r33XfztMno1q2bJOXp3TJ27FhJUvfu3T1en/OOzcX/l56enq7JkycX6/P+/Oc/a8uWLfriiy9UsWLFPMe7du2qyMhIjR49WufOnctz/NChQ5Kk6tWrKyEhQVOmTMn1uOSbb77Rxo0bC13P/v37c/X+ysjI0NSpU5WQkJDvHSGnnTt36rnnntM999yj4cOH6/XXX9eXX36pqVOnus65//77tWzZMs2fPz/P+9PS0nK1QyqsChUqqGvXrvr00081Y8YMhYSEqEePHrnOCQwMzHNXZebMmfmOJn2p+Ph4bdq0yfVzlqS1a9fqhx9+yHXe/fffr6ysLI0aNSrPZ5w/f15paWmFvyjAw7gjA3jYiBEjNG3aNG3evFlNmzZ17b/mmmvUt29fTZo0SWlpaerQoYN+/vlnTZkyRT169FCnTp08Xtsf/vAHhYSE6Pbbb9eAAQN04sQJvffee4qOji6wkXJB5syZo6lTp+qee+7RL7/8ol9++cV1rHz58urRo4ciIyM1YcIE9e7dW9dee60eeOABVa1aVXv27NGcOXPUrl0713gpSUlJ6t69u9q3b6+HHnpIR48e1fjx49W0aVOdOHGiUDU1aNBADz/8sFasWKGYmBh98MEHSk1NvWxQczaSDg8Pd42nM2DAAH3++ed6+umn1aVLF9WoUUPPPfecvvzyS912223q16+fWrVqpZMnT2rdunX67LPPtGvXriveIclPz5499eCDD+qdd95R165dVaFChVzHb7vtNr388svq37+/2rZtq3Xr1mn69OmqW7fuFT/7oYce0tixY9W1a1c9/PDDOnjwoCZOnKimTZsqIyPDdV6HDh00YMAAJSUlKSUlRX/4wx8UHBysrVu3aubMmXrzzTd17733FvnaAI+wsccUUKpc3P36Un379rUk5ep+bVmWde7cOeull16y4uLirODgYCs2NtYaNmyYdebMmVzn1a5d2+revXuez3V2HZ45c2ahannhhRcsSdahQ4dc+7788kurRYsWVlhYmFWnTh1rzJgx1gcffGBJsnbu3Ok6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W7fO9fo///mPevTooeHDh+vs2bPF+UiURM2a0i23mG1G+gUAlCHFCjIDBgzQli1bJEk7duxQz549ddVVV2nmzJkaMmSIWwtEITnHlJk0SerUSVq50t56AADwgmIFmS1btighIUGSNHPmTHXo0EEfffSRkpOT9fnnn7uzPhRWjx5S5cpSaqq0eLE0bZrdFQEA4HHFCjKWZSn7wkiy3377rbp16yZJio2N1eHDh91XHQpn925pwwbpttty9s2YIa1eLa1aZY4DAFAKFav7dWJiol555RV16dJF33//vSZMmCBJ2rlzp2JiYtxaIAqhTp28+w4elC7uQVa623QDAMqoYt2RGTdunFavXq0nnnhCI0aMUL169SRJn332mdq2bevWAlEIH34oBRWQSYOCzHEAAEoht3a/PnPmjAIDAxUcHOyujyyxMtH9WjKPkfIbw2fVKunaa71fDwAAJVDY7+9iPVpyWrVqlX799VdJUpMmTXQtX5j2CwhgJmwAQJlRrCBz8OBB9ezZU99//70qVKggSUpLS1OnTp00Y8YMVa1a1Z01ojCio6Vq1aTYWKluXemTT6TAQInfBQCgFCtWG5knn3xSJ06c0IYNG3T06FEdPXpU69evV0ZGhp566il314jCqFlT2rVLWr7cjCVTrpyUlWXmYAIAoJQqVpCZN2+e3nnnHTVu3Ni1r0mTJnr77bf19ddfu604FFFoqJl7KTIyZ/6lt96ytSQAADypWEEmOzs73wa9wcHBrvFlYLOBA836P/+R9uyxtxYAADykWEGmc+fOevrpp7V//37Xvn379mnQoEG6+eab3VYcSqBxY+nmm03D3/Hj7a4GAACPKFaQeeutt5SRkaE6deooPj5e8fHxiouLU0ZGhsbzpek7Bg0y64kTpWPH7K0FAAAPKFavpdjYWK1evVoLFy50db9u3LixunTp4tbiUELduknNmknr10sTJkjDh9tdEQAAblXkIJOdna3k5GTNmjVLu3btksPhUFxcnKKiomRZlhwOhyfqRHE4HNLQodKDD0rjxpk7NOHhdlcFAIDbFOnRkmVZuuOOO/TII49o3759at68uZo2bardu3erX79+uuuuuzxVJ4qrZ08zF9OhQ9LkyXZXAwCAWxUpyCQnJ2vJkiVauHCh1qxZo48//lgzZszQ2rVr9e233+q7777T1KlTPVUriiMoSHr2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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_R = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"R\", roi = (16, 8))\n",
+    "cal_RF_R.plot(color = 'red')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "25aec8a4-91f8-4199-a272-826e8747751f",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_G = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"G\", roi = (16, 8))\n",
+    "cal_RF_G.plot(color = 'green')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "1dae48fa-ffae-48a4-b81b-f3a20b946161",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 9\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: title={'center': 'Normalized pixel value'}, ylabel='Dose'>"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cal_RF_B = cal_image.get_calibration(doses = imparted_doses, func = \"RF\", channel = \"B\", roi = (16, 8))\n",
+    "cal_RF_B.plot(color = 'blue')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "29f0ddce-c0a3-4456-8129-1d3a5cef61ca",
+   "metadata": {},
+   "source": [
+    "## Dose verification"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "b60a7452-9af6-453a-8b04-c123e9b214cb",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 3\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Lectura de archivo\n",
+    "verif_path = Path(\"/home/luis/Downloads\") / \"VERIFICACION_1.tif\"  # Office PC\n",
+    "#verif_path = Path(\"/home/luis/Descargas\") / \"VERIFICACION_1.tif\" # Personal laptop\n",
+    "verif = load(verif_path)\n",
+    "\n",
+    "dose_img = verif.to_dose(cal_RF_R)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "id": "6988f45e-1c34-4e90-8e56-c25a3c003747",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of images detected: 3\n",
+      "Number of images detected: 3\n",
+      "Number of images detected: 3\n",
+      "Dosis en canal rojo: [0.00963348 0.51529858 5.01220582]\n",
+      "Dosis en canal verde: [0.07911956 0.56635226 5.06235789]\n",
+      "Dosis en canal azul: [0.         0.52612424 4.95190513]\n"
+     ]
+    }
+   ],
+   "source": [
+    "import numpy as np\n",
+    "from calibration import polynomial_g3\n",
+    "\n",
+    "mean_pixel_r, _ = verif.get_stat(ch = \"R\", roi = (30, 10), show = False)\n",
+    "mean_pixel_r = sorted(mean_pixel_r, reverse = True)\n",
+    "mean_pixel_g, _ = verif.get_stat(ch = \"G\", roi = (30, 10), show = False)\n",
+    "mean_pixel_g = sorted(mean_pixel_g, reverse = True)\n",
+    "mean_pixel_b, _ = verif.get_stat(ch = \"B\", roi = (30, 10), show = False)\n",
+    "mean_pixel_b = sorted(mean_pixel_b, reverse = True)\n",
+    "#mean_pixel\n",
+    "\n",
+    "#optical_density_r = -np.log10(np.array(mean_pixel_r)/mean_pixel_r[0])\n",
+    "x_r = np.array(mean_pixel_r) / mean_pixel_r[0]\n",
+    "x_g = np.array(mean_pixel_g) / mean_pixel_g[0]\n",
+    "x_b = np.array(mean_pixel_b) / mean_pixel_b[0]\n",
+    "\n",
+    "dosis_from_fit_r = rational_func(x_r, *cal_RF_R.popt)\n",
+    "dosis_from_fit_r[dosis_from_fit_r < 0] = 0 # Remove doses < 0\n",
+    "dosis_from_fit_g = rational_func(x_g, *cal_RF_G.popt)\n",
+    "dosis_from_fit_g[dosis_from_fit_g < 0] = 0 # Remove doses < 0\n",
+    "dosis_from_fit_b = rational_func(x_b, *cal_RF_B.popt)\n",
+    "dosis_from_fit_b[dosis_from_fit_b < 0] = 0 # Remove doses < 0\n",
+    "\n",
+    "print(f\"Dosis en canal rojo: {dosis_from_fit_r}\")\n",
+    "print(f\"Dosis en canal verde: {dosis_from_fit_g}\")\n",
+    "print(f\"Dosis en canal azul: {dosis_from_fit_b}\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/scripts/Readme.ipynb b/src/Dosepy/scripts/Readme.ipynb
new file mode 100644
index 0000000..8ee4de1
--- /dev/null
+++ b/src/Dosepy/scripts/Readme.ipynb
@@ -0,0 +1,45 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "307be978-30cc-4091-8331-d8e4e662723a",
+   "metadata": {},
+   "source": [
+    "## Installation (under development)\n",
+    "\n",
+    "1. Open a terminal\n",
+    "2. Create a conda environment\n",
+    "   ```\n",
+    "   conda create -n myenv python=3.10\n",
+    "   conda activate myenv\n",
+    "   ```\n",
+    "\n",
+    "3. Intall Dosepy\n",
+    "   ```\n",
+    "   pip install -i https://test.pypi.org/simple/ Dosepy==0.4.1\n",
+    "   ```"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.13"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/src/Dosepy/tools/calibration.py b/src/Dosepy/tools/calibration.py
new file mode 100644
index 0000000..73b1a27
--- /dev/null
+++ b/src/Dosepy/tools/calibration.py
@@ -0,0 +1,108 @@
+"""
+NAME
+    Calibration module
+
+DESCRIPTION
+    Module for the management of the calibration curve. Here are the functions
+    to be used for fitting. See Calibration class for details.
+"""
+
+import numpy as np
+import matplotlib.pyplot as plt
+from scipy.optimize import curve_fit
+
+
+"""Functions used for film calibration."""
+
+
+def polynomial_g3(x, a, b, c, d):
+    """
+    Polynomial function of degree 3.
+    """
+    return a + b*x + c*x**2 + d*x**3
+
+
+def rational_func(x, a, b, c):
+    """
+    Rational function.
+    """
+    return -c + b/(x-a)
+
+
+class Calibration:
+    """Class used to represent a calibration curve.
+
+        Attributes
+        ----------
+        y : list
+            The doses values that were used to expose films for calibration.
+        x : list
+            Optical density if "P3" fit function wll be used, or normalized pixel value
+            for "RF" fit function.
+        func : str
+            The model function used for dose-film response relationship.
+            "P3": Polynomial function of degree 3.
+            "RF": Rational function.
+        channel : str
+            Color channel. "R": Red, "G": Green and "B": Blue.
+        popt : array
+            Parameters of the function.
+        pcov : 2-D array
+            The estimated approximate covariance of popt. The diagonals provide
+            the variance of the parameter estimate. To compute one standard
+            deviation errors on the parameters, use perr = np.sqrt(np.diag(pcov)).
+        """
+
+    def __init__(self, y: list, x: list, func: str = "P3", channel: str = "R"):
+
+        self.doses = sorted(y)
+
+        if func == "P3":
+            self.x = sorted(x)  # Film response.
+        elif func == "RF":
+            self.x = sorted(x, reverse=True)
+
+        self.func = func
+
+        if self.func == "P3":
+            self.popt, self.pcov = curve_fit(polynomial_g3, self.x, self.doses)
+        elif self.func == "RF":
+            self.popt, self.pcov = curve_fit(
+                                            rational_func,
+                                            self.x,
+                                            self.doses,
+                                            p0=[0.1, 200, 500]
+                                            )
+        else:
+            raise Exception("Invalid fit function.")
+        self.channel = channel
+
+    def plot(self, ax: plt.Axes = None, show: bool = True, **kwargs) -> plt.Axes:
+        """Plot the calibration curve.
+
+        Parameters
+        ----------
+        ax : matplotlib.Axes instance
+            The axis to plot the image to. If None, creates a new figure.
+        show : bool
+            Whether to actually show the image. Set to false when plotting
+            multiple items.
+        kwargs
+            kwargs passed to plt.plot()
+        """
+        if ax is None:
+            fig, ax = plt.subplots()
+
+        x = np.linspace(self.x[0], self.x[-1], 100)
+        if self.func == "P3":
+            y = polynomial_g3(x, *self.popt)
+            ax.set_xlabel("Optical density")
+        elif self.func == "RF":
+            y = rational_func(x, *self.popt)
+            ax.set_title("Normalized pixel value")
+        ax.plot(x, y, **kwargs)
+        ax.plot(self.x, self.doses, '*', **kwargs)
+        ax.set_ylabel("Dose")
+        if show:
+            plt.show()
+        return ax
diff --git a/src/Dosepy/tools/i_o.py b/src/Dosepy/tools/i_o.py
new file mode 100644
index 0000000..973d6f6
--- /dev/null
+++ b/src/Dosepy/tools/i_o.py
@@ -0,0 +1,33 @@
+"""I/O helper functions"""
+
+from pathlib import Path
+import os
+from pylinac.core.io import get_url
+
+def retrieve_demo_file(name: str, force: bool = False) -> Path:
+    """Retrieve the demo file either by getting it from file or from a URL.
+
+    If the file is already on disk it returns the file name. If the file isn't
+    on disk, get the file from the URL and put it at the expected demo file location
+    on disk for lazy loading next time.
+
+    Parameters
+    ----------
+    name : str
+        File name.
+    """
+
+    urls = {
+        "QA_Post.tif": r"https://raw.githubusercontent.com/LuisOlivaresJ/Dosepy/main/docs/Jupyter/",
+        "QA_Pre.tif": r"https://raw.githubusercontent.com/LuisOlivaresJ/Dosepy/main/docs/Jupyter/",
+        }
+    
+    url = urls[name] + name
+    demo_path = Path(__file__).parent / "demo_files" / name
+    
+    demo_dir = demo_path.parent
+    if not demo_dir.exists():
+        os.makedirs(demo_dir)
+    if force or not demo_path.exists():
+        get_url(url, destination = demo_path)
+    return demo_path
\ No newline at end of file
diff --git a/src/Dosepy/tools/image.py b/src/Dosepy/tools/image.py
new file mode 100644
index 0000000..9526f58
--- /dev/null
+++ b/src/Dosepy/tools/image.py
@@ -0,0 +1,641 @@
+"""
+NAME
+    Image module
+
+DESCRIPTION
+    This module holds functionalities for tif image loading and manipulation.
+    The main function is load. Some common methods are get_stat, to_dose and
+    get_calibration. The content is heavily based from pylinac
+    (https://pylinac.readthedocs.io/en/latest/_modules/pylinac/core/image.html),
+    and omg_dosimetry
+    https://omg-dosimetry.readthedocs.io/en/latest/
+
+"""
+
+from pathlib import Path
+import numpy as np
+import os.path as osp
+from typing import Any, Union
+import imageio.v3 as iio
+
+import matplotlib.pyplot as plt
+import matplotlib.patches as mpatches
+
+from skimage.color import rgb2gray
+from skimage.filters import threshold_otsu
+from skimage.morphology import square, erosion
+from skimage.measure import label, regionprops
+from skimage.filters.rank import mean
+
+from Dosepy.tools.calibration import polynomial_g3, rational_func, Calibration
+
+MM_PER_INCH = 25.4
+
+ImageLike = Union["ArrayImage", "TiffImage", "CalibImage"]
+
+
+def load(path: str | Path | np.ndarray,
+         for_calib: bool = False,
+         filter: int | None = None,
+         **kwargs) -> "ImageLike":
+    r"""Load a TIFF image or numpy 2D array.
+
+    Parameters
+    ----------
+    path : str, file-object
+        The path to the image file or array.
+
+    for_calib : bool, default = False
+        True if the image is going to be used to get a calibration curve.
+
+    filter : int
+        If None (default), no filtering will be done to the image.
+        If an int, will perform median filtering over image of size ``filter``.
+
+    kwargs
+        See :class:`~dosepy.image.ArrayImage`, :class:`~dosepy.image.TiffImage`,
+        or :class:`~dosepy.image.CalibImage` for keyword arguments.
+
+    Returns
+    -------
+    ::class:`~dosepy.image.BaseImage`
+
+    Examples
+    --------
+    Load an image from a file::
+
+        >>> from dosepy.image import load
+        >>> path_to_image = r"C:\QA\image.tif"
+        >>> img = load(path_to_image)  # returns a TiffImage
+
+    Loading from an array is just like loading from a file::
+
+        >>> arr = np.arange(36).reshape(6, 6)
+        >>> img = load(arr)  # returns a ArrayImage
+    """
+    if isinstance(path, BaseImage):
+        return path
+
+    if _is_array(path):
+        array_image = ArrayImage(path, **kwargs)
+        if isinstance(filter, int):
+            array_image.array = mean(array_image.array, footprint=square(filter))
+        return array_image
+
+    elif _is_image_file(path):
+        if _is_tif_file:
+            if _is_RGB:
+                if for_calib:
+                    calib_image = CalibImage(path, **kwargs)
+                    if isinstance(filter, int):
+                        for i in range(3):
+                            calib_image.array[:, :, i] = mean(
+                                calib_image.array[:, :, i],
+                                footprint=square(filter))
+                    return calib_image
+                else:
+                    tiff_image = TiffImage(path, **kwargs)
+                    if isinstance(filter, int):
+                        for i in range(3):
+                            tiff_image.array[:, :, i] = mean(
+                                tiff_image.array[:, :, i],
+                                footprint=square(filter))
+                    return tiff_image
+            else:
+                raise TypeError(f"""The argument '{path}' was not found to be
+                                a RGB TIFF file.""")
+        else:
+            raise TypeError(f"""The argument '{path}' was not found to be
+                            a valid TIFF file.""")
+    else:
+        raise TypeError(f"""The argument '{path}' was not found to be
+                        a valid file.""")
+
+
+def _is_array(obj: Any) -> bool:
+    """Whether the object is a numpy array."""
+    return isinstance(obj, np.ndarray)
+
+
+def _is_image_file(path: str | Path) -> bool:
+    """Whether the file is a readable image file via imageio.v3."""
+    try:
+        iio.improps(path)
+        return True
+    except:
+        return False
+
+
+def _is_tif_file(path: str | Path) -> bool:
+    """Whether the file is a tif image file."""
+    if Path(path).suffix in (".tif", ".tiff"):
+        return True
+    else:
+        return False
+
+
+def _is_RGB(path: str | Path) -> bool:
+    """Whether the image is RGB."""
+    if (iio.improps(path).shape) == 3:
+        return True
+    else:
+        return False
+
+
+class BaseImage:
+    """Base class for the Image classes.
+
+    Attributes
+    ----------
+    path : str
+        The path to the image file.
+    array : numpy.ndarray
+        The actual image pixel array.
+    """
+
+    array: np.ndarray
+    path: str | Path
+
+    def __init__(self, path: str | Path | np.ndarray):
+        """
+        Parameters
+        ----------
+        path : str
+            The path to the image.
+        """
+
+        if isinstance(path, (str, Path)) and not osp.isfile(path):
+            raise FileExistsError(
+                f"File `{path}` does not exist. Verify the file path name.")
+        else:
+            self.path = path
+            self.base_path = osp.basename(path)
+
+
+class TiffImage(BaseImage):
+    """An image from a tiff file.
+
+    Attributes
+    ----------
+    sid : float
+        The SID value as passed in upon construction.
+    props : imageio.core.v3_plugin_api.ImageProperties
+        Image properties via imageio.v3.
+    """
+
+    def __init__(
+        self,
+        path: str | Path,
+        *,
+        dpi: float | None = None,
+        sid: float | None = None,
+            ):
+        """
+        Parameters
+        ----------
+        path : str, file-object
+            The path to the file or a data stream.
+        dpi : int, float
+            The dots-per-inch of the image, defined at isocenter.
+
+            .. note:: If a X and Y Resolution tag is found in the image, that
+            value will override the parameter, otherwise this one will be used.
+        sid : int, float
+            The Source-to-Image distance in mm.
+        """
+        super().__init__(path)
+        self.props = iio.improps(path)
+        self.array = iio.imread(path)
+
+        try:
+            dpi = self.props.spacing[0]
+
+        except AttributeError:
+            pass
+
+        self._dpi = dpi
+        self.sid = sid
+
+    @property
+    def dpi(self) -> float | None:
+        """The dots-per-inch of the image, defined at isocenter."""
+
+        dpi = None
+
+        if self.sid is not None:
+            dpi *= self.sid / 1000
+        else:
+            dpi = self._dpi
+
+        return dpi
+
+    @property
+    def dpmm(self) -> float | None:
+        """The Dots-per-mm of the image, defined at isocenter. E.g. if an EPID
+        image is taken at 150cm SID, the dpmm will scale back to 100cm."""
+        try:
+            return self.dpi / MM_PER_INCH
+        except TypeError:
+            return
+
+    def get_stat(self, ch='G', roi=(5, 5), show=False, threshold=None):
+        r"""Get average and standar deviation from pixel values at a central ROI in each film.
+
+        Parameter
+        ---------
+        ch : str
+            Color channel. "R": Red, "G": Green, "B": Blue and "M": mean.
+        field_in_film : bool
+            True to show the rois used in the image.
+        roi : tuple
+            Width and height of a region of interest (roi) in millimeters, at the
+            center of the film.
+        show : bool
+            Whether to actually show the image and rois.
+
+        Returns
+        -------
+        list
+            mean, std
+
+        Examples
+        --------
+        Load an image from a file and compute a calibration curve using
+        green channel::
+
+        >>> from dosepy.image import load
+        >>> path_to_image = r"C:\QA\image.tif"
+        >>> cal_image = load(path_to_image, for_calib = True)
+        >>> mean, std = cal_image.get_stat(
+                ch = 'G',
+                roi=(5,5),
+                show = True
+                )
+        >>> list(zip(mean, std))
+
+        """
+
+        erosion_pix = int(6*self.dpmm)  # Number of pixels used for erosion.
+        #print(f"Number of pixels to remove borders: {erosion_pix}")
+
+        gray_scale = rgb2gray(self.array)
+        if not threshold:
+            thresh = threshold_otsu(gray_scale)  # Used for films identification.
+        else:
+            thresh = threshold
+        binary = erosion(gray_scale < thresh, square(erosion_pix))
+        label_image, num = label(binary, return_num=True)
+
+        if show:
+            fig, axes = plt.subplots(ncols=1)
+            #ax = axes.ravel()
+            axes = plt.subplot(1, 1, 1)
+            axes.imshow(gray_scale, cmap="gray")
+
+        print(f"Number of images detected: {num}")
+
+        # Films
+        if ch == "R":
+            films = regionprops(label_image, intensity_image=self.array[:, :, 0])
+        if ch == "G":
+            films = regionprops(label_image, intensity_image=self.array[:, :, 1])
+        if ch == "B":
+            films = regionprops(label_image, intensity_image=self.array[:, :, 2])
+        if ch == "M":
+            films = regionprops(label_image,
+                                intensity_image=np.mean(self.array, axis=2)
+                                )
+
+        # Find the unexposed film.
+        #mean_pixel = []
+        #for film in films:
+        #    mean_pixel.append(film.intensity_mean)
+        #index_ref = mean_pixel.index(max(mean_pixel))
+        #print(f"Index reference: {index_ref}")
+        #end Find the unexposed film.
+
+        mean = []
+        std = []
+
+        height_roi_pix = int(roi[1]*self.dpmm)
+        #print(f"height_roi: {height_roi_pix}")
+        width_roi_pix = int(roi[0]*self.dpmm)
+        #print(f"width_roi: {width_roi_pix}")
+
+        for film in films:
+            x0, y0 = film.centroid
+            #print(f"(x0: {x0}, y0: {y0}")
+
+            # Used to get film rectangle.
+            #minr_film, minc_film, maxr_film, maxc_film  = film.bbox
+
+            minc_roi = int(y0 - width_roi_pix/2)
+            minr_roi = int(x0 - height_roi_pix/2)
+
+            if ch == "R":
+                roi = self.array[
+                    int(x0 - height_roi_pix/2): int(x0 + height_roi_pix/2),
+                    int(y0 - width_roi_pix/2): int(y0 + width_roi_pix/2),
+                    0,
+                ]
+            if ch == "G":
+                roi = self.array[
+                    int(x0 - height_roi_pix/2): int(x0 + height_roi_pix/2),
+                    int(y0 - width_roi_pix/2): int(y0 + width_roi_pix/2),
+                    1,
+                ]
+            if ch == "B":
+                roi = self.array[
+                    int(x0 - height_roi_pix/2): int(x0 + height_roi_pix/2),
+                    int(y0 - width_roi_pix/2): int(y0 + width_roi_pix/2),
+                    2,
+                ]
+            if ch == "M":
+                array = np.mean(self.array, axis=2)
+                roi = array[
+                    int(x0 - height_roi_pix/2): int(x0 + height_roi_pix/2),
+                    int(y0 - width_roi_pix/2): int(y0 + width_roi_pix/2)
+                ]
+
+            mean.append(int(np.mean(roi)))
+            std.append(int(np.std(roi)))
+
+            if show:
+                rect_roi = mpatches.Rectangle(
+                    (minc_roi, minr_roi),
+                    width_roi_pix,
+                    height_roi_pix,
+                    fill=False,
+                    edgecolor='red',
+                    linewidth=1,
+                )
+
+                axes.add_patch(rect_roi)
+
+        if show:
+            plt.show()
+
+        return mean, std
+
+    def plot(
+        self,
+        ax: plt.Axes = None,
+        show: bool = True,
+        clear_fig: bool = False,
+        **kwargs
+    ) -> plt.Axes:
+        """Plot the image.
+
+        Parameters
+        ----------
+        ax : matplotlib.Axes instance
+            The axis to plot the image to. If None, creates a new figure.
+        show : bool
+            Whether to actually show the image. Set to false when plotting
+            multiple items.
+        clear_fig : bool
+            Whether to clear the prior items on the figure before plotting.
+        kwargs
+            kwargs passed to plt.imshow()
+        """
+        if ax is None:
+            fig, ax = plt.subplots()
+        if clear_fig:
+            plt.clf()
+        ax.imshow(self.array/np.max(self.array), **kwargs)
+        #ax.imshow(self.array[:,:,0], **kwargs)
+        if show:
+            plt.show()
+        return ax
+
+    def to_dose(self, cal) -> ImageLike:
+        """Convert the tiff image to a dose distribution. The tiff file image
+        has to contain an unirradiated film used as a reference for zero Gray.
+
+        Parameters
+        ----------
+        cal : dosepy.calibration.Calibration
+            Instance of a Calibration class
+
+        Returns
+        -------
+        ImageLike : ArrayImage
+            Dose distribution.
+        """
+        mean_pixel, _ = self.get_stat(ch=cal.channel, roi=(5, 5), show=False)
+        mean_pixel = sorted(mean_pixel, reverse=True)
+
+        if cal.channel == "R":
+            if cal.func == "P3":
+                x = -np.log10(self.array[:, :, 0]/mean_pixel[0])
+            elif cal.func == "RF":
+                x = self.array[:, :, 0]/mean_pixel[0]
+
+        elif cal.channel == "G":
+            if cal.func == "P3":
+                x = -np.log10(self.array[:, :, 1]/mean_pixel[0])
+            elif cal.func == "RF":
+                x = self.array[:, :, 1]/mean_pixel[0]
+
+        elif cal.channel == "B":
+            if cal.func == "P3":
+                x = -np.log10(self.array[:, :, 2]/mean_pixel[0])
+            elif cal.func == "RF":
+                x = self.array[:, :, 2]/mean_pixel[0]
+
+        elif cal.channel == "M":
+            array = np.mean(self.array, axis=2)
+            if cal.func == "P3":
+                x = -np.log10(array/mean_pixel[0])
+            elif cal.func == "RF":
+                x = self.array/mean_pixel[0]
+
+        if cal.func == "P3":
+            dose_image = polynomial_g3(x, *cal.popt)
+        elif cal.func == "RF":
+            dose_image = rational_func(x, *cal.popt)
+
+        dose_image[dose_image < 0] = 0  # Remove unphysical doses < 0
+
+        return load(dose_image, dpi=self.dpi)
+
+    def doses_in_central_rois(self, cal, roi, show):
+        """Dose in central film rois.
+
+        Parameters
+        ----------
+        cal : dosepy.calibration.Calibration
+            Instance of a Calibration class
+        roi : tuple
+            Width and height of a region of interest (roi) in millimeters (mm), at the
+            center of the film.
+        show : bool
+            Whether to actually show the image and rois.
+
+        Returns
+        -------
+        array : numpy.ndarray
+            Doses on heach founded film.
+        """
+        mean_pixel, _ = self.get_stat(ch=cal.channel, roi=roi, show=show)
+        #
+        if cal.func == "P3":
+            mean_pixel = sorted(mean_pixel)  # Film response.
+            optical_density = -np.log10(mean_pixel/mean_pixel[0])
+            dose_in_rois = polynomial_g3(optical_density, *cal.popt)
+
+        elif cal.func == "RF":
+            # Pixel normalization 
+            mean_pixel = sorted(mean_pixel, reverse = True)
+            norm_pixel = np.array(mean_pixel)/mean_pixel[0]
+            dose_in_rois = rational_func(norm_pixel, *cal.popt)
+
+        return dose_in_rois
+
+
+class CalibImage(TiffImage):
+    """A tiff image used for calibration."""
+
+    def __init__(self, path: str | Path, **kwargs):
+        """
+        Parameters
+        ----------
+        path : str, file-object
+            The path to the file.
+
+        dpi : float
+            The dots-per-inch of the image, defined at isocenter.
+
+            .. note:: If a DPI tag is found in the image, that value will
+            override the parameter, otherwise this one will be used.
+        """
+        super().__init__(path, **kwargs)
+        self.calibration_curve_computed = False
+
+    def get_calibration(
+        self,
+        doses: list,
+        func="P3",
+        channel="R",
+        roi=(5, 5),
+        threshold=None
+    ):
+        r"""Computes calibration curve. Use non-linear least squares to
+        fit a function, func, to data. For more information see
+        scipy.optimize.curve_fit.
+
+        Parameter
+        ---------
+        doses : list
+            The doses values that were used to expose films for calibration.
+        func : string
+            "P3": Polynomial function of degree 3,
+            "RF": Rational function.
+        channel : str
+            Color channel. "R": Red, "G": Green and "B": Blue, "M": mean.
+        roi : tuple
+            Width and height region of interest (roi) in millimeters, at the
+            center of the film.
+
+        Returns
+        -------
+        ::class:`~dosepy.calibration.Calibration`
+            Instance of a Calibration class.
+
+        Examples
+        --------
+        Load an image from a file and compute a calibration curve using green
+        channel::
+
+        >>> from dosepy.image import load
+        >>> path_to_image = r"C:\QA\image.tif"
+        >>> cal_image = load(path_to_image, for_calib = True)
+        >>> cal = cal_image.get_calibration(
+            doses = [0, 0.5, 1, 2, 4, 6, 8, 10],
+            channel = "G")
+        >>> # Plot the calibration curve
+        >>> cal.plot(color = "green")
+        """
+
+        doses = sorted(doses)
+        mean_pixel, _ = self.get_stat(ch=channel, roi=roi, threshold=threshold)
+        mean_pixel = sorted(mean_pixel, reverse=True)
+        mean_pixel = np.array(mean_pixel)
+
+        if func == "P3":
+            x = -np.log10(mean_pixel/mean_pixel[0])  # Optical density
+
+        elif func == "RF":
+            x = mean_pixel/mean_pixel[0]
+
+        return Calibration(y=doses, x=x, func=func, channel=channel)
+
+
+class ArrayImage(BaseImage):
+    """An image constructed solely from a numpy array."""
+
+    def __init__(
+        self,
+        array: np.ndarray,
+        *,
+        dpi: float = None,
+        sid: float = None,
+        dtype=None,
+    ):
+        """
+        Parameters
+        ----------
+        array : numpy.ndarray
+            The image array.
+        dpi : int, float
+            The dots-per-inch of the image, defined at isocenter.
+
+            .. note:: If a DPI tag is found in the image, that value will
+            override the parameter, otherwise this one will be used.
+        sid : int, float
+            The Source-to-Image distance in mm.
+        dtype : dtype, None, optional
+            The data type to cast the image data as. If None, will use
+            whatever raw image format is.
+        """
+        if dtype is not None:
+            self.array = np.array(array, dtype=dtype)
+        else:
+            self.array = array
+        self._dpi = dpi
+        self.sid = sid
+
+    @property
+    def dpmm(self) -> float | None:
+        """The Dots-per-mm of the image, defined at isocenter. E.g. if an EPID
+        image is taken at 150cm SID, the dpmm will scale back to 100cm."""
+        try:
+            return self.dpi / MM_PER_INCH
+        except:
+            return
+
+    @property
+    def dpi(self) -> float | None:
+        """The dots-per-inch of the image, defined at isocenter."""
+        dpi = None
+        if self._dpi is not None:
+            dpi = self._dpi
+            if self.sid is not None:
+                dpi *= self.sid / 1000
+        return dpi
+
+
+    def save_as_tif(self, file_name):
+        """Used to save a dose distribution (in Gy) as a tif file (in cGy).
+        
+        Parameters
+        ----------
+        file_name : str
+            File name as a string
+
+        """
+        data = np.int64(self.array*100) # Gy to cGy
+        np_tif = data.astype(np.uint16)
+        tif_encoded = iio.imwrite("<bytes>", np_tif, extension=".tif")
+        with open(file_name, 'wb') as f:
+            f.write(tif_encoded)
\ No newline at end of file


Test patch:
diff --git a/src/Dosepy/scripts/test_tutorial.py b/src/Dosepy/scripts/test_tutorial.py
new file mode 100644
index 0000000..5589f42
--- /dev/null
+++ b/src/Dosepy/scripts/test_tutorial.py
@@ -0,0 +1,41 @@
+# Getting Started With Testing in Python
+## A script for testing. Source: https://realpython.com/python-testing/
+
+#   DEFINITIONS
+
+##  Exploratory testing: Is a form of testing that is donde without a plan.
+##  In an exploratory test, you're just exploring the app.
+
+##  Integration testing: Testing multiple components.
+
+##  Unit test: It is a smaller test, one that checks that a single component operates in the right way.
+
+""" # Example of a unit test for a function.
+def test_sum():
+    assert sum([1,2,3]) == 6, "Shoud be 6"
+
+# Test with a tuple.
+def test_sum_tuple():
+    assert sum((1,2,2)) == 6, "Shoud be 6"
+
+if __name__ == "__main__":
+    test_sum()
+    test_sum_tuple()
+    print("Everything passed.") """
+
+import unittest
+
+class TestSum(unittest.TestCase):
+
+    def test_sum(self):
+        self.assertEqual(
+            sum([1,2,3]), 6, "Shoud be 6"
+        )
+    
+    def test_sum_tupple(self):
+        self.assertEqual(
+            sum((1,2,2)), 6, "Shoud be 6"
+        )
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/tests/README.md b/tests/README.md
new file mode 100644
index 0000000..68d9655
--- /dev/null
+++ b/tests/README.md
@@ -0,0 +1,5 @@
+# Testing
+
+For testing, I'm going to follow this [guide:](https://realpython.com/python-testing/#testing-your-code)
+
+From Dosepy proyect folder, open a terminal and run $python -W ignore:ResourceWarning -m unittest discover -s tests -v
\ No newline at end of file
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/unit/fixtures/an_incorrect_image_file.md b/tests/unit/fixtures/an_incorrect_image_file.md
new file mode 100644
index 0000000..94cfd7d
--- /dev/null
+++ b/tests/unit/fixtures/an_incorrect_image_file.md
@@ -0,0 +1,1 @@
+# Testing
\ No newline at end of file
diff --git a/tests/unit/fixtures/calibracion.png b/tests/unit/fixtures/calibracion.png
new file mode 100755
index 0000000..02c321c
Binary files /dev/null and b/tests/unit/fixtures/calibracion.png differ
diff --git a/tests/unit/fixtures/image.tif b/tests/unit/fixtures/image.tif
new file mode 100644
index 0000000..8f8bb70
Binary files /dev/null and b/tests/unit/fixtures/image.tif differ
diff --git a/tests/unit/fixtures/imageJ.tif b/tests/unit/fixtures/imageJ.tif
new file mode 100644
index 0000000..d441b04
Binary files /dev/null and b/tests/unit/fixtures/imageJ.tif differ
diff --git a/tests/unit/fixtures/red_channel.tif b/tests/unit/fixtures/red_channel.tif
new file mode 100644
index 0000000..488f26e
Binary files /dev/null and b/tests/unit/fixtures/red_channel.tif differ
diff --git a/tests/unit/test_image.py b/tests/unit/test_image.py
new file mode 100644
index 0000000..1f3ddeb
--- /dev/null
+++ b/tests/unit/test_image.py
@@ -0,0 +1,31 @@
+import unittest
+
+from pathlib import Path
+
+from Dosepy.tools import image
+
+cwd = Path(__file__).parent
+
+class TestReadableImage(unittest.TestCase):
+    def test_bad_file(self):
+        #cwd = Path(__file__).parent
+        file_path = cwd / "fixtures" / "an_incorrect_image_file.md"
+        with self.assertRaises(TypeError):
+            img = image.load(file_path)
+
+    def test_bad_format(self):
+        #cwd = Path(__file__).parent
+        file_path = cwd / "fixtures" / "calibracion.png"
+        self.assertFalse(image._is_tif_file(file_path))
+
+    def test_bad_RGB(self):
+        file_path = cwd / "fixtures" / "red_channel.tif"
+        self.assertFalse(image._is_RGB(file_path))
+
+    def test_readable_image(self):
+        #cwd = Path(__file__).parent
+        file_path = cwd / "fixtures" / "image.tif"
+        img = image.load(file_path)
+        self.assertIsInstance(img, image.TiffImage)
+
+    #TO DO: A test function for TiffImage.dpi
\ No newline at end of file