2014-12-03 42 views
7

Tôi đã thu thập một loạt video sử dụng Kinect cho windows 2 bằng cách sử dụng studio kinect với phần mở rộng tệp .xef.Kinect v2, đọc dữ liệu từ các tệp .xef

Bây giờ tôi muốn viết một chương trình để tải dữ liệu từ chúng và chỉ phát lại hoặc lưu dưới dạng khác, nhưng tôi đã tìm thấy ít tài nguyên để làm như vậy, có tài nguyên hữu ích nào để làm điều đó không?

Trả lời

1

những gì bạn có thể làm là đọc tệp xef bằng Kinect Studio, sau đó chuyển đến tab Phát (hoặc Phát lại) và nhấn phát, chương trình của bạn sẽ bắt đầu phát trực tiếp. Tôi nghĩ đó là cách duy nhất để làm điều đó, làm như nó đến từ kinect.

14

Thực ra, bạn có thể sử dụng API Kinect Studio để đọc và phát tệp .xef kể từ lần phát hành SDK cuối cùng (KinectSDK-v2.0_1409). Nó chỉ là không đúng cách tài liệu được nêu ra, nhưng có thể được tích hợp vào mã của bạn. Đây là một mô tả ngắn gọn để sử dụng nó (xét xử tại một VS 2013 C# Solution):

  1. Chuyển đến thư mục cài đặt của KinectStudio (ví dụ C: \ Program Files \ Microsoft SDK \ Kinect \ v2.0_1409 \ Tools \ KinectStudio).
  2. Tham chiếu "Microsoft.Kinect.Tools.dll" trong dự án của bạn.
  3. Sao chép "KStudioService.dll" vào thư mục Gỡ lỗi hoặc Phát hành của bạn.
  4. Thay đổi BuildProperties thành x64 (nếu không bạn sẽ nhận được BadImageFormatException).

API được mô tả here.

here là một số mã mẫu từ Carmine từ nhóm Microsoft Kinect.

+0

Xin chào, tôi đã chạy mã mẫu từ Carmine thành công, nhưng tôi không biết cách lấy hình ảnh màu và độ sâu từ đối tượng KStudioPlayback. Bạn có bất kỳ ý tưởng về điều này? – JerryDDG

1

Dường như không có cách nào để phân tích cú pháp tệp XEF để trích xuất hình ảnh trực tiếp.

Nếu bạn không cần tất cả các khung được lưu trữ trong tệp XEF, tức là bỏ khung là ok, cách gián tiếp là tạo ứng dụng Kinect để nhận khung từ tệp XEF qua dịch vụ Kinect.

Một test nhanh là:

  1. Launch KinectStudio, kết nối với dịch vụ Kinect, mở tập tin XEF.
  2. Khởi chạy ColorBasics-D2D hoặc DepthBasics-D2D (từ Kinect v2 SDK).
  3. Phát tệp XEF trong KinectStudio.
  4. Khung màu/chiều sâu được hiển thị trong ứng dụng ColorBasics hoặc DepthBasics.

Sau đó, bạn có thể sửa đổi mã nguồn trong ColorBasics hoặc DepthBasics để lưu hình ảnh cho phù hợp. Bạn có thể sửa đổi KinectFusionExplorer-D2D nếu bạn quan tâm đến việc căn chỉnh chiều sâu và hình ảnh màu.

Cách tiếp cận này chỉ có thể nắm bắt một tập con các khung được lưu trữ trong XEF vì việc phát lại và nhận khung thông qua dịch vụ Kinect là không đồng bộ. Vì vậy, nó sẽ chỉ hoạt động nếu khung rơi không phải là một vấn đề trong chương trình của bạn.

Các vấn đề liên quan