我正在尝试从视频中提取帧并将它们转换为字节数组(或类似的可读格式)。最终目标是能够比较不同的帧。
我正在使用DirectShow库并开始使用他们的示例DxScan(他们的标准示例的一部分,您可以在这里找到:(http://sourceforge.net/projects/directshownet/files/DirectShowSamples/2010-February/ )
在BufferCB-methode中,我添加了这个:
unsafe int ISampleGrabberCB.BufferCB( double SampleTime, IntPtr pBuffer, int BufferLen )
{
Bitmap v;
v = new Bitmap(m_videoWidth, m_videoHeight, m_stride,PixelFormat.Format32bppArgb, pBuffer);
MemoryStream buf = new MemoryStream();
v.Save(buf, ImageFormat.Bmp);
byte[] currentImage = buf.GetBuffer();
...
问题是在调用方法v.save之后,代码跳回到顶部,而不是继续。所以我的字节数组仍为空。
我该如何解决这个问题?或者有更好的方法来获取单个字节吗?
THX