Tag: webcam

如何在c#中从网络摄像头抓取恒定的位图图像流

我们有ac#应用程序,可以对video流进行处理。 这是一个以Bitmap格式接收每个帧的低级应用程序,所以基本上我们每秒需要25个图像。 此应用程序已经适用于我们的一些媒体源,但我们现在需要添加网络摄像头作为输入设备。 因此,我们基本上需要连续捕获网络摄像头中的位图图像,以便我们可以将所有这些帧作为“流”传递给我们的应用程序。 访问网络摄像头的最佳和最简单的方法是什么?直接从网络摄像头读取实际帧作为单独的图像? 我还在起跑线上。 有许多库允许人们访问网络摄像头,在Windows面板上预览网络摄像头的内容,然后使用屏幕捕获再次捕获此图像。 不幸的是,当每秒捕获25帧时,这不会给我们提供必要的性能。 IVMRWindowlessControl9 :: GetCurrentImage已被提及作为另一种选择,但这似乎再次针对的是一个不常见的快照,而不是一个恒定的图像流。 Directshow.Net被许多人称为一个很好的候选人,但目前还不清楚如何简单地从网络摄像头抓取图像。 此外,许多消息来源表示担心微软不再支持Directshow。 此外,我已经看到的实现需要ImageGrabber,显然也不再支持 。 MS的新替代品似乎是媒体基金会,但我的研究还没有找到任何可以实现的实例(我不确定这是否会在旧版本的Windows上运行,如XP)。 DirectX.Capture是一个很棒的库( 参见一个很好的实现 ),但似乎缺乏直接获取video图像的filter和方法。 我也开始研究滤镜和滤镜图,但这看起来非常复杂,感觉有点像“重新发明轮子”。 总的来说,上面简要提到的所有解决方案似乎都相当陈旧。 有人可以指点我一步一步的指导,让网络摄像头在C#中工作,并从中每秒抓取几张图像? (我们还必须在某些时候做音频,因此不排除video的解决方案将是最有帮助的)。

在Asp.Net MVC中通过网络摄像头捕获图像

我想从网络摄像头捕获图像并保存在服务器上或通过ajax发送。 哪个是更好的选择,为什么? 欢迎任何可用的信息。 提前致谢

有没有办法创建一个重复的网络摄像头设备?

我正在用C#编写一个multithreading应用程序来同时处理网络摄像头输入。 是否有任何代码项目可以将网络摄像头的副本创建为新设备,因此每个线程可以采用真实设备还是虚拟设备而不会相互干扰? 许多软件声称“拆分”网络摄像头(用于效果和filter),但是一旦他们创建的设备被使用,就无法打开真实设备。 换句话说,我需要网络摄像头充当两个,并且每个网络摄像头都可以同时访问。

是否可以伪造video流作为在Skype,Lync等中可见的虚拟摄像头?

我正在尝试为我的应用程序构建一个关键部分,我需要能够伪造虚拟凸轮video流。 我想伪造成虚拟网络摄像头的video流通过我的PC进行流式传输,在那里我可以从我的网络摄像头或我硬盘的某个地方设置video源。 总而言之,我可以在WPF MediaElement.SourceProperty or Image.Source设置为MediaElement.SourceProperty or Image.Source 。 我见过Vivek的Vcam,这是tmhare.com中的directshowfilter ,看起来它与我正在寻找的东西非常相关。 但我找不到用VS2010编译它的方法,我也不知道如何处理它。 我想我需要更改输入引脚但是如何? 无论如何,总而言之,我正在尝试构建一个需要像ManyCam的小版本一样工作的部分代码。 我正在构建一个WPF应用程序,我从64位PC流式传输源代码。 我也很欣赏filter的一些示例代码,因为我几乎忘记了我所知道的关于C ++的一切,因为DirectShowfilter需要用C ++编写… 谢谢你的一切! 编辑: 我得到的错误; 1 IntelliSense: identifier “REFERENCE_TIME” is undefined c:\program files (x86)\microsoft sdks\windows\v7.0a\include\dvdmedia.h 307 5 // and 6 more 6 IntelliSense: not a class or struct name c:\users\umutto\desktop\projects\src\directshowwizardinstaller\vcam\vcam\filters\filters.h 8 22 Filters 7 IntelliSense: identifier “CUnknown” is undefined […]

使用CaptureElement / MediaCapture时如何在网络摄像头之间切换?

我试图提供一个选项,用于在使用CaptureElement / MediaCapture显示预览的网络摄像头之间切换。 不幸的是,我尝试了多种呼叫序列组合,预览只显示我使用的第一个设备。 这就是我一直在努力做的事情: XAML: C#: MediaCapture mediaCapture; DeviceInformationCollection devices; int currentDevice = 0; private async void LayoutRoot_Tapped(object sender, Windows.UI.Xaml.Input.TappedEventArgs e) { if (devices != null) { currentDevice = (currentDevice + 1) % devices.Count; InitializeWebCam(); } } private async void InitializeWebCam() { if (devices == null) { devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture); ListDeviceDetails(); } if […]

使用网络摄像头捕获video并使用c#另存为avi

可能重复: 网络摄像头捕获并转换为avi 有没有办法从网络摄像头捕获video,使用c#编码并将video保存为avi文件(作为电影)?

使用WIA在C#中使用网络摄像头自动拍照

我正在使用WIALib来访问我的网络摄像头。 我正在开发的代码非常简单:当按下按钮时,会拍摄网络摄像头图像,然后显示在图片框中。 我已经可以用我的网络摄像头拍照了,但它还没有完全自动化。 我发现检索网络摄像头拍摄的照片的唯一方法是使用: wiaPics = wiaRoot.GetItemsFromUI( WiaFlag.SingleImage, WiaIntent.ImageTypeColor ) as CollectionClass; 但是这要求用户选择图片。 我总是想要拍下最后一张照片。 所以我正在尝试这种方式: string imageFileName = Path.GetTempFileName(); // create temporary file for image wiaItem = wiaRoot.TakePicture(); // take a picture Cursor.Current = Cursors.WaitCursor; // could take some time this.Refresh(); wiaItem.Transfer(imageFileName, false); // transfer picture to our temporary file pictureBox1.Image = Image.FromFile(imageFileName); // create […]

C#控件用DirectShow.Net显示摄像机video

我想使用DirectShow.Net从网络摄像头捕获流。 我可以使用哪种类型的UI控件来显示网络摄像头video捕获? 我看过一个使用Form的整个窗口的例子,但是我可以使用任何其他控件:Panel,PictureBox?

在Windows Vista / 7中从C#访问网络摄像头的“首选”方法

我发现很多post讨论WIA,Windows Portable Devices API和DirectShow(以及提供示例代码)来访问C#中的网络摄像头,但是当你研究每种方法时,你似乎遇到了这些是“旧”方法的引用。 因此,问题是,当比Windows Vista更早运行时,从C#访问网络摄像头的“首选”方法是什么? 谢谢, 约翰。

用网络摄像头读取条形码

嘿, 我正在尝试从我的网络摄像头读取EAN-13条形码。 我已经写了一堂课去做那项工作。 我正在从我的网络摄像头拍照,修剪它只显示条形码, 并使用维基百科的代码表读取条形码。 由于某种原因,条形码被修剪,但输出始终为“0-1-1-1-1-1-1-1-1-1-1-1-1”。 我想知道我是否犯了任何愚蠢的错误或误解了什么? 我不想使用任何第三方程序! 这是我现在的代码: public class BarcodeDecoder { static string[] ligerade = new string[] { “0100111”, “0110011”, “0011011”, “0100001”, “0011101”, “0000101”, “0010001”, “0001001”, “0010111” }; static string[] rechtsgerade = new string[ligerade.Length]; static string[] liungerade = new string[ligerade.Length]; static string[] GeradeUG = new string[] { “UUUUUU”, “UUGUGG”, “UUGGUG”, “UUGGGU”, “UGUUGG”, “UGGUUG”, […]