Como cualquier fotógrafo aficionado puede decirle, el postprocesamiento extremo siempre es bueno. Una de esas técnicas se llama " falsificación en miniatura ".
El objetivo es hacer que una imagen parezca una fotografía de una versión miniaturizada de juguete de sí misma. Esto funciona mejor para fotografías tomadas desde un ángulo moderado / alto al suelo, con una baja variación en la altura del sujeto, pero se puede aplicar con eficacia variable a otras imágenes.
El desafío: tomar una fotografía y aplicarle un algoritmo de simulación en miniatura. Hay muchas maneras de hacer esto, pero a los efectos de este desafío, se reduce a:
Desenfoque selectivo
Alguna parte de la imagen debe ser borrosa para simular una profundidad de campo poco profunda. Esto generalmente se realiza a lo largo de algún gradiente, ya sea lineal o con forma. Elija el algoritmo de desenfoque / gradiente que desee, pero entre el 15 y el 85% de la imagen debe tener un desenfoque "notable".
Impulso de saturación
Sube el color para que las cosas parezcan pintadas a mano. La salida debe tener un nivel de saturación promedio de> + 5% en comparación con la entrada. (usando saturación de HSV )
Aumento de contraste
Aumente el contraste para simular condiciones de iluminación más severas (como se ve con una luz interior / de estudio en lugar de con el sol). La salida debe tener un contraste de> + 5% en comparación con la entrada. (usando el algoritmo RMS )
Esas tres alteraciones deben implementarse y no se permiten otras mejoras / alteraciones. Sin recorte, afilado, ajustes de balance de blancos, nada.
La entrada es una imagen y se puede leer desde un archivo o memoria. Puede usar bibliotecas externas para leer y escribir la imagen, pero no puede usarlas para procesar la imagen. Las funciones suministradas también están prohibidas para este propósito (no puede llamar,
Image.blur()
por ejemplo)No hay otra entrada. Las fuerzas de procesamiento, los niveles, etc., deben ser determinados por el programa, no por un humano.
La salida se puede mostrar o guardar como un archivo en un formato de imagen estandarizado (PNG, BMP, etc.).
Intenta generalizar. No debería funcionar en una sola imagen, pero es comprensible que no funcione en todas las imágenes. Algunas escenas simplemente no responden bien a esta técnica, no importa cuán bueno sea el algoritmo. Aplica el sentido común aquí, tanto al responder como al votar por las respuestas.
El comportamiento no está definido para entradas no válidas y aquellas imágenes que son imposibles de satisfacer la especificación. Por ejemplo, una imagen en escala de grises no se puede saturar (no hay un tono base), una imagen en blanco puro no puede tener un mayor contraste, etc.
Incluya al menos dos imágenes de salida en su respuesta:
Uno debe generarse a partir de una de las imágenes en esta carpeta de Dropbox . Hay seis para elegir, pero intenté hacerlos viables en distintos grados. Puede ver resultados de muestra para cada uno en la
example-outputs
subcarpeta. Tenga en cuenta que estas son imágenes JPG completas de 10MP directamente de la cámara, por lo que tiene muchos píxeles para trabajar.El otro puede ser cualquier imagen de su elección. Obviamente, trate de elegir imágenes que se puedan usar libremente. Además, incluya la imagen original o un enlace para compararla.
Por ejemplo, de esta imagen:
Puede generar algo como:
Como referencia, el ejemplo anterior se procesó en GIMP con un desenfoque gaussiano de gradiente angular en forma de caja, saturación +80, contraste +20. (No sé qué unidades usa GIMP para esos)
Para obtener más inspiración o para tener una mejor idea de lo que está tratando de lograr, consulte este sitio o este . También puede buscar miniature faking
y tilt shift photography
ejemplos.
Este es un concurso de popularidad. Votantes, voten por las entradas que sientan mejor mientras se mantienen fieles al objetivo.
Aclaración:
Aclarando qué funciones están prohibidas, no era mi intención prohibir las funciones matemáticas . Era mi intención prohibir las funciones de manipulación de imágenes . Sí, hay cierta superposición allí, pero cosas como FFT, convoluciones, matemática matricial, etc., son útiles en muchas otras áreas. Usted debe no estar utilizando una función que simplemente toma una imagen y borrones. Si encuentras una forma matemática adecuada para crear un desenfoque, ese juego justo.
GeometricTransformation
,DistanceTransform
,ImageAdd
,ColorNegate
,ImageMultiply
,Rasterize
, yImageAdjust
.) Incluso con la ayuda de las funciones de procesamiento de imágenes de alto nivel, el código lleva hasta 22 k. Sin embargo, el código para la interfaz de usuario es muy pequeño.