es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo ‘Píxeles no alineados al espaciado de cada línea’ en Azure Kinect DK.

Estoy utilizando el Kinect DK y estoy tratando de guardar la Captura de la cámara (un único fotograma con imágenes en Color, Profundidad, IR). Ya me he dado cuenta de que para guardar un objeto de Captura tengo que guardar las 3 imágenes individuales (citadas anteriormente) para luego reconstruir la Captura a partir de los archivos guardados.
Ya he logrado guardar la imagen en Color, pero estoy teniendo algunos problemas con la Profundidad y la IR, debido a su formato.
El problema ocurre cuando intento crear la variable a = calibration.CreateTransformation(), que creo que es necesaria para usar su función a.DepthImageToColorCamera(capture.Depth, depthImage) y devolver una imagen con las dimensiones especificadas del objeto depthImage.
El sistema devuelve una excepción <Microsoft.Azure.Kinect.Sensor.AzureKinectException: ‘Las columnas de píxeles no están alineadas a las líneas de cada línea’>.
¿Alguien ha tenido el mismo problema? Gracias.

P.D. Te daré el enlace a la documentación de Microsoft: https://learn.microsoft.com/it-it/azure/kinect-dk/use-image-transformation

“`csharp
string pathDepth = @"C:\Users\MINALE\Desktop\Kinect_app\depth.json";

if (!File.Exists(pathDepth))
{
// Crear un archivo para escribir en él.
using (StreamWriter sw = File.CreateText(pathDepth))
{
JsonSerializer serializer = new JsonSerializer { Formatting = Formatting.Indented };

<pre><code> Image depthImage = new Image(ImageFormat.Depth16, 512, 512);

try
{
var a = calibration.CreateTransformation();
a.DepthImageToColorCamera(capture.Depth, depthImage);
}
catch (Exception ex)
{

}

serializer.Serialize(sw, depthImage.GetPixels<bgra>().Span.ToArray());
}
</code></pre>

}
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar relacionado con el hecho de que los píxeles de la imagen de profundidad no están alineados con la longitud de cada línea, lo que causa la excepción al intentar crear la variable a = calibration.CreateTransformation().

    Una posible solución podría ser alinear manualmente los píxeles a la longitud de cada línea antes de intentar crear la transformación. Otra solución podría ser utilizar diferentes formatos de imagen que estén alineados, como el formato MJPEG.

    También podría ser útil consultar la documentación de Microsoft sobre la transformación de imágenes para el SDK de Azure Kinect, que proporciona información más detallada sobre los diferentes formatos de imagen y cómo trabajar con ellos.

Comments are closed.