我正在使用Kinect DK并尝试保存摄像头Capture(一个单一的帧与颜色,深度,红外图像)。我已经意识到,要保存一个捕获对象,我必须保存3个单一的图像(上面引用的),然后从保存的文件中重建捕获。我已经成功保存了彩色图像,但我有一些问题的深度和红外,因为它们的格式。当我尝试创建var a = calibration.CreateTransformation()时出现问题,我认为这是使用其函数a.DepthImageToColorCamera(capture.Depth,depthImage)返回具有指定尺寸的depthImage对象的图像所必需的。系统返回〈Microsoft.Azure.Kinect.Sensor.AzureKinectException:“像素未与每行的步幅对齐”〉异常。有人遇到过同样的问题吗?谢谢。
P.S.我会给予你微软文档https://learn.microsoft.com/it-it/azure/kinect-dk/use-image-transformation的链接
string pathDepth = @"C:\Users\MINALE\Desktop\Kinect_app\depth.json";
if (!File.Exists(pathDepth))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(pathDepth))
{
JsonSerializer serializer = new JsonSerializer { Formatting = Formatting.Indented };
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());
}
}
1条答案
按热度按时间monwx1rj1#
我解决了只保存红外和深度图像在他们自己的格式,没有深度到颜色的转换,结束然后重建捕捉使用他们。