Archivo de la etiqueta: rotaciones

No pierdas el norte

El otro día un operador nos contó que cuando crean un proyecto fotogramétrico con la intención de utilizar la funcionalidad de cambio automático de modelos, rotan 180 grados las imágenes de pasadas impares, modifican el giro de kappa esas fotos en el archivo de aerotriangulación y luego crean los modelos de esas pasadas al revés, es decir, en vez de cargar el modelo 1-2, cargan el 2-1.

De esta manera evitan que se cambie el sentido del modelo si el cambio automático de modelos cambia a un modelo de otra pasada.

La verdad es que no habíamos pensado en este inconveniente, así que hoy hemos añadido una nueva funcionalidad a Digi3D.NET que realiza esta tarea de forma automática por nosotros.

Básicamente calcula la diferencia en grados entre el norte del modelo que tenemos cargado y el norte del modelo que se va a cargar. Si la diferencia es superior a un valor (que se puede configurar en Herramientas/Configuración/Proyecto fotogramétrico/Umbral para invertir modelo), el programa rotará automáticamente 180 grados ambas imágenes y además intercambiará los ojos izquierdo y derecho, de manera que veremos el modelo como si estuviera volado al revés y así no perderemos el norte.

Puedes deshabilitar esta nueva característica mediante la opción Herramientas/Configuración/Proyecto fotogramétrico/Invertir modelos para mantener norte.

A continuación un vídeo en el que te mostramos esta nueva funcionalidad:

 

Rotaciones de las imágenes en la ventana fotogramétrica

Acabamos a añadir a Digi3D.NET la orden ROTACIONES_CAMARAS.

Esta orden te va a permitir cambiar dinámicamente los ángulos Omega, Phi y Kappa con los que se visualizan las imágenes en la ventana fotogramétrica.

Puedes utilizar los deslizadores para cambiar los ángulos o asignar valores tecleándolos en los cuadros que aparece a la derecha de cada deslizador.

Si aceptas el cuadro de diálogo, se mantendrán los ajustes que has realizado. Si cancelas, se volverá a asignar a las imágenes los ajustes que tuvieran antes de ejecutar la orden.

Digi3D.NET memorizará (almacenando en el archivo .D3D asociado a cada modelo) los valores de los ángulos, de manera que la próxima vez que cargues ese modelo en particular, las imágenes mantendrán la rotación.

Si el modelo cargado es monoscópico, los deslizadores de la cámara derecha aparecerán deshabilitados, y los ángulos de rotación de la única imagen se modificarán mediante los controles para la cámara izquierda.

En el siguiente vídeo puedes esta nueva funcionalidad en acción:

 

Transformaciones geométrica de imágenes por hardware en la ventana fotogramétrica

Llegó el día en el que Digi3D.NET puede realizar transformaciones de imágenes por hardware.

Hasta hoy (debido a la gran cantidad de usuarios con tarjetas gráficas con un núcleo como la nVidia Quadro FX1400) la aplicación realizaba las transformaciones geométricas por software.

Esta operación se realizaba utilizando todos los núcleos del ordenador para intentar hacerla lo más rápido posible, pero en la práctica tardaba un poco, por lo tanto decidimos en su momento cachear las teselas de las imágenes transformadas en la carpeta %TEMP% del ordenador.

Esto hacía que el espacio libre del disco duro fuera disminuyendo considerablemente hasta agotarlo (momento en el cual había que utilizar la herramienta de liberación de espacio de Windows o herramientas de terceros como CCleaner.

No podíamos continuar toda la vida soportando la tarjeta gráfica nVidia Quadro FX 1400, y ha llegado el momento de decirle adiós..

Publicamos hoy la nueva versión de Digi3D.NET con transformaciones en la tarjeta. Esta versión requiere tarjetas gráficas con más de un núcleo. A partir de ahora, mientras mejor sea nuestra tarjeta gráfica, mejor rendimiento tendrá Digi3D.NET.

Con este cambio hacemos que el programa no sea compatible con ordenadores antiguos (hace un año Microsoft dejó de soportar Windows XP, y el 99% de los ordenadores equipados con una Quadro FX 1400 tienen Windows XP), pero el programa gana muchísimo en especificaciones.

Hemos realizado los siguientes cambios:

  • Las transformaciones (rotar en kappa, epipolares, etc) son instantáneas y sin consumir ni un solo byte en el disco duro. Ahora al programa le cuesta lo mismo mostrar las imágenes transformadas u originales.
  • Ahora podemos activar y desactivar (viene activado por defecto) la opción de interpolar bilinealmente los píxeles a la hora de visualizar las imágenes. Esto hace que los píxeles de la imagen dejen de apreciarse al hacer zooms de acercar.
  • Ahora el programa memoriza las transformaciones de cada una de las imágenes cuando cerramos la ventana fotogramétrica, de modo que si abrimos un modelo y ordenamos que se calcule su epipolar, al volver a abrir ese modelo en particular, las imágenes ya estarán orientadas con la epipolar.
    Bilineal
  • Nuevas opciones para calcular epipolares (la que menos transforma la imagen izquierda, la que menos transforma la imagen derecha y la que conserva la mayor verticalidad).
  • Se ha eliminado la opción de Método de Brillo/Contraste por software. Ahora es siempre por hardware.
  • Se han realizado mejoras a la hora de proyectar las geometrías del archivo de dibujo en la ventana fotogramétrica. Ahora no es necesario mover la ventana fotogramétrica para que aparezcan las geometrías.

Puedes ver esta nueva funcionalidad en el siguiente vídeo

[youtube:https://youtu.be/BV7uxMFM65A%5D

Mejoras en las rotaciones

Hemos añadido una mejora en Digi3D.NET relacionada con las rotaciones de las imágenes en la ventana fotogramétrica.

A partir de ahora se recuerda la rotación de cada una de las imágenes en un determinado modelo, de modo que si rotamos las imágenes mediante alguna de las opciones de rotación del menú Ventana fotogramétrica/Transformación de imágenes, estos valores se almacenarán en el archivo .3d el modelo de manera que cuando volvamos a cargar el modelo se mantendrá la rotación.

(en el siguiente ejemplo de un archivo .d3d puedes ver que se ha añadido la propiedad rotation a los nodos left y right):

<?xml version="1.0" encoding="utf-8"?>
<!-- Created by Digi3D -->
<digi3d orientationDirectory="D:\aerotriangulacion japon\">
    <sensorType id="{6215B409-4981-4665-915E-A85792D50DBC}" description="Conical (Stereoscopic)">
        <left rotation="270">$(WorkingDirectory)311010500615299.smti</left>
        <right rotation="270">$(WorkingDirectory)311010500615300.smti</right>
        <aerotriangulation></aerotriangulation>
        <camera>$(WorkingDirectory)UltraCamX 270.cam</camera>
        <cameraD>$(WorkingDirectory)UltraCamX 270.cam</cameraD>
    </sensorType>
</digi3d>

Además hemos añadido al cuadro de diálogo de creación de proyecto fotogramétrico (el que aparece al pulsar el botón de Crear Varios en el cuadro de diálogo de Nuevo Proyecto) la posibilidad de indicar la rotación de las fotos tal y como puedes ver en la siguiente captura de pantalla:

Campo rotación al crear multiples proyectos