Eliminar collar del archivo ECW (mosaico de ortofoto)

9

Tal vez me falta un concepto básico cuando se trata de manipular / eliminar valores de un mosaico de ortofoto RGB. ¿Es posible eliminar completamente el collar (fondo negro) de un mosaico de ortofoto que está en formato ECW. Pude hacerlo en formato TIFF, pero el archivo debe estar en formato ECW, ya que es muy grande. He tenido un éxito limitado, usando FME, para lograr esto, pero el archivo resultante siempre tiene áreas que no se eliminan. Espero que todo esto tenga sentido.

Estoy abierto a otros formatos que funcionarán, pero siempre que funcione al mismo nivel que un ECW.

Tengo acceso a FME y ArcInfo.

dchaboya
fuente
Estoy tratando de hacer lo mismo. Reemplazar el collar alrededor de un archivo .ECW. Kan, me envías el banco de trabajo FME. Gracias,
Cecília

Respuestas:

8

Esta es una limitación de las primeras versiones (<= 3.3) del formato ECW que no admitían valores NoData o transparencia Alpha. La compresión con pérdida hace que sea aún más difícil quitar los collares ya que los valores de negro no son exactamente RGB 0,0,0 pero varían.

Para deshacerse del collar, deberá enmascarar / recortar el collar y convertir la imagen a otro formato que admita valores NoData, bandas de máscara o transparencia alfa. Puede usar ECW comprimidos con la versión 4 o posterior de ERDAS ECW / JP2 SDK, JPEG2000 o Geotiff.

Hay algunas formas de quitar el collar, tiendo a dibujar un polígono alrededor de los datos "buenos" y recortar con eso o usar la utilidad GDAL nearblack .

usuario2856
fuente
Gracias por la respuesta. Sí, el problema es que el negro, bueno ... no es tan negro, pero varía de 0 a 6 (en mi caso). He probado JPEG2000, y aunque los tamaños de compresión son similares, el rendimiento de representación es muy superior con un formato ECW. ¿MrSID no admite datos?
dchaboya
MrSID tiene el mismo problema con la versión del formato (GEN3) compatible con ArcGIS 10.0, aunque MrSID GEN4 admite bandas alfa. Según este hilo , el soporte de MrSID GEN4 está destinado a la versión ArcGIS 10.1.
blah238
La utilidad GDAL nearblack es exactamente para el caso de que el borde no sea perfectamente negro. Wit-color c1, c2, c3 ... cn: (GDAL> = 1.9.0) puede buscar píxeles cerca del color especificado.
markusN
Probaré la utilidad nearblack. Por lo tanto, parece que todos los formatos de compresión con pérdida no admiten nodatos. ¿Alguien puede explicar brevemente la razón de que las compresiones con pérdida no sean capaces de soportar nodatos?
dchaboya
La transparencia de la banda alfa de ECW se introdujo en SDK v4 (2009). ArcGIS 10.2+ y QGIS 2.2+ lo admiten para la lectura (fuente: blog.hexagongeospatial.com/help-ecw-speckled-edges , que tiene una buena explicación de la diferencia entre Nodata Pixels y Alpha Channel). No se sobre escribir.
matt wilkie
5

ECW desde 2010 ha admitido la transparencia alfa que elimina lo que usted denomina "collares". Esta es una limitación heredada solo en archivos ECW v3.

Los archivos ECW v4 son escritos automáticamente por todo el software ERDAS etiquetado 2010 y superior que incluye Imagine y ERMapper. Los productos de terceros que usan el SDK de v4 pueden admitir la escritura o lectura de esta versión del archivo (la lectura se proporciona de forma gratuita para las aplicaciones de escritorio). No sé de antemano si FME 2012 ha actualizado su soporte ECW

Nota: Las versiones en formato ECW son compatibles con versiones anteriores. Si tiene un archivo ECW v4 con una banda alfa definida pero está leyendo con una aplicación que utiliza el SDK v3, la banda adicional simplemente se ignorará. Visite el sitio web erdas.com para obtener algunos complementos de ECW gratuitos, específicamente para su licencia ArcInfo que agregará compatibilidad con ECW v4

Desafortunadamente, la prevalencia de los compresores v3 ha significado que muchas personas asuman que las limitaciones persisten y de alguna manera es una limitación de los formatos wavelet. Esto ciertamente no es cierto

Referencias,

Chris Tweedie
fuente
2

Hay formas de manipular FME 2012 para quitar el collar. Es un proceso complicado y demasiado para escribir aquí. Una forma rápida de mostrar cómo se puede hacer es usar RasterExpressionEvaluator y la expresión

if(A[0]<$(MAXPIXVALUE)&&A[1]<$(MAXPIXVALUE)&&A[2]<$(MAXPIXVALUE),0,A[0]);if(A[0]<$(MAXPIXVALUE)&&A[1]<$(MAXPIXVALUE)&&A[2]<$(MAXPIXVALUE),0,A[1]);if(A[0]<$(MAXPIXVALUE)&&A[1]<$(MAXPIXVALUE)&&A[2]<$(MAXPIXVALUE),0,A[2])

Donde MAXPIXVALUE es un parámetro de usuario establecido en el valor de píxel máximo para que se considere negro. En mi caso fue alrededor de 8. La expresión busca cada píxel y banda. Si alguna banda tiene un valor menor que el MAXPIXVALUE especificado, considera que esa celda no tiene datos. Si el valor del píxel es, digamos, 9,8,8, dejará el píxel como está porque una banda es más alta que el valor especificado.

En mi escenario, utilicé la expresión para crear un archivo de forma que se ajustara exactamente a las imágenes y recorté los ecws originales al archivo de forma creado por la expresión.

Zack Gilbert
fuente
Excelente. le daré una oportunidad. Sospecho que esta operación tardará un tiempo en completarse en un gran conjunto de datos.
dchaboya
Si. Mucho más. Mis conjuntos de datos se ejecutan en cualquier lugar de 2 a 2000 ecws y el banco de trabajo se ejecuta en promedio de 2 a 48 horas.
Zack Gilbert
Recibo un error al intentar ejecutarlo (probablemente no lo configuro correctamente). Así que reemplacé MAXPIXVALUE con el valor máximo que quiero reemplazar, así (2). Ahora, no estoy seguro de cómo usar los puertos. ¿Alguna sugerencia?
dchaboya
No estoy seguro. Tendría que mirar el banco de trabajo y ver. Envíeme su banco de trabajo por correo electrónico con el archivo de registro de la última vez que lo ejecutó. Veré qué puedo hacer con él.
Zack Gilbert