xna中的网络摄像头呼叫
我是新来的 我想使用我的网络摄像头,并将网络摄像头图像作为3D模型的背景纹理 是否有调用网络摄像头的功能xna中的网络摄像头呼叫,xna,webcam,Xna,Webcam,我是新来的 我想使用我的网络摄像头,并将网络摄像头图像作为3D模型的背景纹理 是否有调用网络摄像头的功能 谢谢你的建议不久前我自己也遇到了这个问题,我想出了一个相当混乱的解决方案 首先,您需要使用motion_src库,您可以在这里找到: 这篇教程是关于运动检测的,但是如果你下载了演示代码,你就可以从相机上获取输入 现在,将其添加为xna项目的参考 一旦设置了从相机捕获提要的系统(所有详细信息都在该教程中,在此不再重复),您将需要将提要(捕获到system.Drawing.Bitmap中)复制
谢谢你的建议不久前我自己也遇到了这个问题,我想出了一个相当混乱的解决方案 首先,您需要使用motion_src库,您可以在这里找到: 这篇教程是关于运动检测的,但是如果你下载了演示代码,你就可以从相机上获取输入 现在,将其添加为xna项目的参考 一旦设置了从相机捕获提要的系统(所有详细信息都在该教程中,在此不再重复),您将需要将提要(捕获到system.Drawing.Bitmap中)复制到xna纹理中
Texture2D image;
b = (System.Drawing.Bitmap)camera.LastFrame.Clone();
for (int j = 0; j < image.Height; j++)
{
for (int i = 0; i < image.Width; i++)
{
c = b.GetPixel(i, j);
colours[i + j * image.Width] = new Color(c.R, c.G, c.B, byte.MaxValue);
}
}
image.SetData<Color>(colours);
Texture2D图像;
b=(System.Drawing.Bitmap)camera.LastFrame.Clone();
对于(int j=0;j
然后,您可以使用对spritebatch:)的普通调用来显示图像纹理。您可以使用第三方。它可以使用网络摄像头或AVI、MPEG或WMV,并允许您访问纹理2D对象,当前帧作为图像,可与spritebatch一起使用或应用于3D对象
我从未使用过它,但如果您下载了文档,它应该会有所帮助。只需创建一个VideoTexture,并使用其VideoTexture2D属性检索Texture2D即可。然后,您可以将其设置为某些3D对象的每个效果的纹理。如果您查看AForge框架,您将找到一个在网络摄像头提要上执行运动检测的示例程序 这个框架有一个非常容易获取的网络摄像头提要 基本上以
VideoCaptureDevice device = new VideoCaptureDevice(monikor);
device.NewFrame += new AForge.Video.NewFrameEventHandler(webcam_NewFrame);
webcam.Start();
在那里,您可以通过调用类似以下代码来获取网络摄像头的monikor
FilterInfoCollection webcamList = new FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach(FilterInfo info in webcamList)
{
string monikor = info.MonikorString;
string deviceName = info.Name;
}
这是我遇到的获取网络摄像头提要的最好/最简单的方法
然后,您可以将位图转换为纹理2D并根据需要显示 谢谢,但这对我来说太复杂了,我不明白你到底在说什么?我只是想把网络摄像头的图像画到屏幕上。在这个例子中,有太多的类我不知道该检查哪一个,作者解释了,但他在得到视频帧后开始解释这些功能,我不需要阈值或者,在我的项目中,我们将完成教程中的部分,将图像捕获到System.Drawing.Bitmap,然后忽略教程的其余部分,一旦获得位图,您只需将其复制到XNA纹理中,如我上面所示,就是这样。如果你还是不明白,我可以试着找到我以前的项目,虽然我不确定我是否还拥有它:/I抱歉,但你在谈论哪个教程没有任何教程标题或链接,我假设你谈论的是算法标题下的文章,这些都是从阈值开始的。你有关于videoTexture类的示例代码吗?我找到了videoTexture类,但我找不到设法使用它。这有什么帮助吗?