Soy un tipo de vectores en su mayoría, pero para un proyecto actual necesito trabajar con un montón de viejos mapas de papel escaneados (¡mapas de daños de bombas ww2 para Londres, si estás interesado!)
Escaneamos y georreferenciamos los mapas, y ahora queremos crear una capa compuesta en mosaico para servir en un sitio web. Obviamente, cortaremos las fronteras, ese no es el problema aquí.
El problema es que hay desagradables diferencias visuales de color y brillo entre las hojas del mapa. Estoy un poco perdido en cuanto a cómo igualarlos para dar un aspecto visual coherente. Leí sobre ecualización de histogramas, pero mi caja de herramientas actual (Manifold GIS, GDAL, GeoServer) no parece tener la funcionalidad requerida.
Ejemplo de 4 escaneos ya georreferenciados:
fuente
Respuestas:
Esto se puede hacer en GIMP http://www.gimp.org/
Debe crear una paleta de colores personalizada: esto leerá cada imagen cargada y se ajustará mejor a los píxeles, lo que obligará a los colores a ser casi iguales.
También puede restringir el contraste y el brillo de manera similar.
http://gimp.open-source-solution.org/manual/gimp-tool-brightness-contrast.html
http://docs.gimp.org/en/gimp-palette-dialog.html
Para obtener detalles más avanzados, puede usar la función Ecualizar con el histograma
http://docs.gimp.org/en/gimp-layer-equalize.html
Esto se puede automatizar con la función de macro script fu.
http://www.squidoo.com/gimp-how-to-write-a-script-fu-macro
fuente
Otra forma es utilizar el software de costura de fotos (panorámicas). Hugin es un ejemplo de un proyecto gratuito y abierto que hace exactamente eso y viene incluido con un enblend que puede encargarse de las diferencias de brillo. No es necesario manipular paletas, solo elija la imagen con la mejor iluminación / colores como fuente de fusión. Sin embargo, primero tendrías que cortar las fronteras.
fuente
Un intento que sugeriría es utilizar técnicas de ecualización de histograma.
Existen técnicas para asignar cada valor de píxel a un nuevo valor equilibrado utilizando la función de distribución acumulativa (cdf).
Por ejemplo, si tiene nubes en la imagen 1 y la imagen 2 y es el objeto más brillante de la imagen. En ambas imágenes son blancas, pero en mosaico se da cuenta de que una nube es un poco más blanca que la otra. En 1, el valor de píxel medio de la nube es 200, por lo tanto, en 2 es 240. Usando cdf podría transformar los valores de píxel usando la probabilidad de ocurrencia, de modo que independientemente del valor si es el objeto más brillante, se asignará a un valor de 255 píxeles.
Puede llevar todas las imágenes a una referencia común, mejorando también el contraste.
Traté de escribir algo en este tema hace un tiempo y está disponible en github para un vistazo. Siéntete libre de preguntar.
https://github.com/rupestre-campos/histogram_equalize
fuente