Una curva de contraste es una función de entrada/salida de tipo sigmoide (forma de 'S'), utilizada intensivamente en programas de procesado de imagen para aumentar (o disminuir) el contraste aparente de una imagen. En general se prefiere una curva con sus extremos en (0,0)
y (1,1)
, y que sea estrictamente monótona creciente para que nunca pueda provocar una pérdida o cruce de niveles tonales. De esta forma además será una biyección y por tanto reversible lo que, errores de redondeo al margen, supone un procesado no destructivo.
jueves, 17 de abril de 2025
Curvas de contraste con R
viernes, 11 de abril de 2025
Profundidad de campo tras hacer "zoom digital"
Alguna vez has fotografiado con una lente fija y recortado la imagen resultante para obtener el ángulo de visión correspondiente a una distancia focal mayor?. Esto es lo que hacen de forma natural todos los móviles, pero también hay cámaras serias de alta resolución como la Leica Q3 o la nueva Fujifilm GFX 100RF que juegan al recorte sin complejos.
domingo, 8 de septiembre de 2024
Calculando el promedio ponderado de una serie histórica con un único campo
n
valores del histórico y operar sobre ellos para obtener algún tipo de promediado (media, media ponderada, mediana,...). Vamos a ver una forma mucho más económica de calcular un promedio ponderado por antigüedad de los valores de la serie, solo necesitando el propio campo donde se almacena el dato.lunes, 29 de abril de 2024
Proyección de sombras sobre un DEM con R
Dada la naturaleza de los mapas de elevación (DEM), donde en cada celda del terreno tenemos que preocuparnos de una única coordenada tridimensional, aunque con algunas restricciones podemos acercarnos de forma sencilla a un cálculo exacto de proyección de sombras, sin necesidad de recurrir a verdaderos algoritmos 3D complejos basados en trazado de rayos (los usados en software como Blender, rayshader,...).
viernes, 29 de septiembre de 2023
Transformación trapezoidal de imágenes con R (I). Algoritmo
En numerosas aplicaciones (proyecciones de imagen, fotografía de arquitectura, publicidad en espectáculos deportivos, realidad virtual, señalización sobre calzadas,...) a menudo se precisa, en una forma u otra, de una corrección de la imagen que puede implementarse mediante una transformación trapezoidal.
martes, 29 de agosto de 2023
Qué probabilidad tienes de vivir una guerra nuclear?
Un evento que no ha ocurrido nunca solo lo podemos acotar a priori con una probabilidad teórica en el rango [0, 1[. De él solo sabemos que no se ha dado, cuantificar su probabilidad sin más datos es imposible.
Pero si disponemos de una serie (temporal, espacial,...) de iteraciones u ocurrencias posibles del fenómeno en la que éste no ha sucedido, podemos atrevernos a estimar una cota superior de la probabilidad de su ocurrencia con determinada probabilidad de error o intervalo de confianza.
lunes, 7 de agosto de 2023
OppenheimeR, el destructor de mundos
Como evolución del ejercicio de representación en 3D de la Tierra que hicimos en 'Fotografiando la Tierra desde el espacio con R', vamos a simular un final nuclear para nuestra civilización, uno de los temores del mayor responsable de la creación de la bomba atómica y a la postre pacifista Robert Oppenheimer.
"I am become Death, the destroyer of worlds"
(J. Robert Oppenheimer, julio 1945)
lunes, 24 de abril de 2023
Fotografiando la Tierra desde el espacio con R
La perspectiva o deformación de un sujeto al ser fotografiado no depende de la distancia focal usada, sino exclusivamente de la distancia física del sujeto a la que se coloca la cámara. Esto mismo es aplicable a las fotografías que se pueden hacer de la Tierra desde el espacio: en función de la distancia a la que se la fotografíe tendremos una cobertura diferente de su superficie.
martes, 24 de enero de 2023
Proyección rectilínea de escenas 3D sobre el plano con R
Tanto si tienes una cámara de fotos, usas programas para hacer render o te echas partidas a videojuegos 3D, lo que estás viendo en esas imágenes no es información tridimensional real sino una aproximación plana de la misma.
viernes, 18 de noviembre de 2022
Apilado por 'antimediana' para replicar sujetos en movimiento con Photoshop
En el ejercicio 'Apilado por 'antimediana' para replicar sujetos en movimiento en RAW' creábamos una función detectora de outliers, la 'antimediana', con la que buscábamos quedarnos con todos los sujetos móviles en una ráfaga. Construíamos un archivo RAW de salida con todas las apariciones de un corredor en una serie de fotogramas.
jueves, 15 de septiembre de 2022
Calculando la redondez de una piedra con R
Hace unos días recogí en la playa tres piedras aparentemente circulares con la idea de cuantificar numéricamente su redondez, es decir, lo próximo que se encuentren geométricamente a una circunferencia perfecta.
sábado, 13 de agosto de 2022
Perspectiva aérea desde mapa de elevaciones con R
La perspectiva aérea o atmosférica consiste en la pérdida de contraste y color percibida en los objetos más alejados de un observador por efecto de la atmósfera. Se ha usado durante siglos en pintura y también es muy frecuente encontrarla en fotografía de paisaje. En este ejercicio vamos a recrear esta sensación de profundidad en un skyline geográfico partiendo de la información de altitudes y distancias de un mapa de elevaciones.
domingo, 24 de julio de 2022
Construyendo mapas de sombras hillshade con R
A raíz de la entrada 'Efecto hillshade o sombras de laderas' del blog de Dominic Royé, he probado una forma menos ambiciosa de obtener con R un sombreado hillshade de un mapa de elevaciones, pero con la premisa de no usar ninguna librería específica haciendo el método fácilmente trasladable a cualquier lenguaje con notación matricial como Python o Matlab. El código además está vectorizado para no usar bucles lo que hace su ejecución prácticamente instantánea.
martes, 7 de junio de 2022
Simulación acústica de motores flatplane y crossplane
En este vídeo de YouTube se explica la diferencia entre dos tipos de motores de explosión interna: los muy extendidos motores con cigüeñal flatplane y los mucho menos habituales crossplane (como el que lleva la Yamaha R1 del autor del vídeo). Las ventajas y desventajas mecánicas de cada uno se documentan sobradamente allí y en otras fuentes, pero he querido hacer una simulación de cómo puede llegar a ser distinto el sonido producido por uno y otro tipo de motor.
lunes, 18 de abril de 2022
Simulación de solarigrafías con R
Para cerrar la trilogía de artículos dedicados al Sol que iniciamos en 'Localización del Sol por día y hora con R', vamos a calcular la proyección de la trayectoria solar sobre determinado soporte fotográfico. La solarigrafía (término inventado por Diego López Calvín, Sławomir Decyk y Paweł Kula), es un tipo de fotografía donde se busca capturar el recorrido del Sol a lo largo de un largo período de tiempo, días o incluso varios meses. Idealmente abarcará de solsticio a solsticio con el fin de capturar todo el rango de elevaciones.
sábado, 2 de abril de 2022
Proyección de sombras solares con R
Tras ver los conceptos básicos sobre posicionamiento del Sol en el firmamento en 'Localización del Sol por día y hora con R', vamos a hacer un ejercicio de proyección de sombras. Conociendo la dirección de procedencia de los rayos solares en cada hora de cada día del año, es inmediato simular la evolución en el tiempo de las sombras proyectadas por estructuras cubiertas planas. Al carecer de paredes, la sombra proyectada es una réplica de la estructura desplazada en función de su altura física, el día del año y la hora.
martes, 4 de mayo de 2021
Apilado por media para simular ISO ultra bajo en RAW
En este segundo ejemplo de 'Generando un RAW en formato DNG a partir de un TIFF', vamos a promediar varios archivos RAW procedentes de capturas perfectamente alineadas realizadas sobre la misma escena para construir un DNG de salida de características mejoradas.
miércoles, 10 de febrero de 2021
Transferencia de calor por elementos finitos con R (I). Simulador
El pasado mes de enero la borrasca Filomena nos regaló en Madrid la mayor nevada que yo haya visto, y vivo aquí desde 1999. Este hecho unido a que por otros motivos llevaba un tiempo dándole al coco sobre formas de aislamiento en climas fríos, me inspiró definitivamente para tratar de hacer algunas simulaciones de transmisión del calor (clic sobre la imagen para verla en todo su esplendor).