首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CaptureElement和MediaCapture执行实时视频流处理

从CaptureElement和MediaCapture执行实时视频流处理
EN

Stack Overflow用户
提问于 2012-10-11 09:06:40
回答 1查看 7.3K关注 0票数 1

在我的Windows 8商店应用程序中,我倾向于执行实时视频流处理(例如人脸检测)。

技术1

在我以前的Windows 7应用程序中,我能够使用以下技术(基于Emgu CV (OpenCV in .NET)和WPF的摄像机人脸检测)执行实时视频处理。该技术是,具有固定周期的计时器回调,主动从相机对象中查询图像缓冲区。

代码语言:javascript
复制
void timer_Tick(object sender, EventArgs e)
{
    Image<Bgr,Byte> currentFrame = capture.QueryFrame();
    // Perform image processing based on currentFrame

技术2

我以前在安卓中使用过的另一种技术是,我将在相机本身上安装一个相机缓冲区预览回调。相机将周期性地触发回调,通过传递捕获的相机缓冲区。从那里,我可以执行图像处理。

代码语言:javascript
复制
public abstract void onPreviewFrame (byte[] data, Camera camera)
{
    // Perform image processing based on data

然而,在有关Windows 8商店应用程序的视频处理的文章中,它们大多使用内置处理功能。

  • 如何旋转捕获的视频(Windows存储应用程序使用C#/VB/C++和XAML)
  • 如何为捕获的视频添加视频稳定效果(Windows Store应用程序使用C#/VB/C++和XAML)

中没有一个演示如何访问原始摄像机捕获的缓冲区,逐像素迭代缓冲区。

我相信我需要利用CaptureElement & MediaCapture

http://blog.xyzzer.me/2012/01/22/displaying-webcam-preview-in-a-metro-app-using-winrt-and-xaml/

这个方法很好,如果您只想看到网络摄像头的输入或捕获它到一个文件,没有麻烦。如果您想实时处理视频或覆盖其他用户界面组件-输入… CaptureElement & MediaCapture方法

然而,在此之后,作者并没有作更详细的阐述。(我希望他这样做:)

有没有提示如何从CaptureElement & MediaCapture执行实时视频流处理?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 10:02:58

您首先可以尝试的是MediaCapture.CapturePhotoToStreamAsync,我认为这也只是将照片压缩的场景,但您可能很快就可以将其解码回WriteableBitmap,并对其像素进行一些处理。不过,你可能不会以这种方式每秒处理太多帧。

更好的方法可能是使用MediaCapture.AddEffectAsync()并在C++中编写一个媒体基础转换( Media ),该转换将处理视频并以某种方式将结果传递给应用程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12836017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档