英特尔实感 C# 将流录制到文件
Posted
技术标签:
【中文标题】英特尔实感 C# 将流录制到文件【英文标题】:Intel Real Sense C# Recording stream to a file 【发布时间】:2017-04-20 21:03:44 【问题描述】:我正在尝试使用英特尔实感 SDK 获取一些引导帧,然后尝试使用英特尔拼接算法对它们进行拼接。 但是,SetFileName 函数不会将文件写入目录。 你能帮忙吗?
PXCMSenseManager pp = PXCMSenseManager.CreateInstance();
RaiseMessage("Starting...");
pp.EnableFace()
pp.Enable3DScan()
if (!string.IsNullOrEmpty(StreamOutputFilename))
if (File.Exists(StreamOutputFilename)) throw new Exception("File already exists");
System.Diagnostics.Debug.WriteLine(StreamOutputFilename);
pp.QueryCaptureManager().SetFileName(StreamOutputFilename,true);
【问题讨论】:
我无法从文档中找出应该何时创建文件,但它可能来自Init()
调用,如here 所示。 SetFileName()
方法也可能返回错误,您应该检查 IsError()
,例如,如果文件不可写,我认为您会收到错误:if (pp.QueryCaptureManager().SetFileName(StreamOutputFilename,true).IsError()) an error occurred else continue
@Quantic:感谢您的 cmets。我确实尝试了 Is 错误函数,但不幸的是,它没有返回任何错误。但我看不到初始化 SetFileName 函数后创建的任何文件。你还有什么想法吗?
@Quantic 有什么想法吗?
不抱歉,我刚刚打开此选项卡并做出响应,因为一整天后有零个 cmets。我从未使用过英特尔实感。我不明白为什么您没有像示例中那样的Init()
调用,您是否尝试添加它?您是否尝试过以管理员身份运行?
@Quantic:感谢您的信息。是的,我在调用函数后立即添加了 init()。您认为管理员权限会成为问题吗?我会试试的。你有什么想法可以使用任何手动函数调用而不是调用 SDK 中的这个函数(Setfilename)?
【参考方案1】:
请参考解决方案here
int wmain(int argc, WCHAR* argv[])
// Create a SenseManager instance
PXCPointF32 *uvmap = 0;
pxcCHAR *file = L"C:\\new.rssdk";
PXCSenseManager *sm = PXCSenseManager::CreateInstance();
// Set file recording or playback
sm->QueryCaptureManager()->SetFileName(file, 1);
// Select the color stream
sm->EnableStream(PXCCapture::STREAM_TYPE_DEPTH, 640, 480, 0);
// Initialize and Record 300 frames
sm->Init();
for (int i = 0; i<300; i++)
// This function blocks until a color sample is ready
if (sm->AcquireFrame(true)<PXC_STATUS_NO_ERROR) break;
// Retrieve the sample
PXCCapture::Sample *sample = sm->QuerySample();
sm->ReleaseFrame();
// close down
sm->Release();
return 0;
【讨论】:
虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。以上是关于英特尔实感 C# 将流录制到文件的主要内容,如果未能解决你的问题,请参考以下文章