如何使PictureBox显示已捕获的视频

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:17:28
我已经使用Directshow捕获了视频,并转化为了OpenCV里定义的IplImagege格式.该部分代码均为C++编写的,但只能在CMD中显示视频,所以要做窗体界面.

考虑到C#开发界面比较快,现在尝试用C#做窗体应用程序,并且我已实现了跨语言(C#窗体程序调用C++类库),请问如何在PictureBox显示已捕获的视频?如何调用C++里捕获视频的函数呢?如何
我主要是对C#控件操作不熟,烦请指教!

OpenCV本身就是Intel用C语言开发的计算机视觉类库,所以开发中最好用C或C++,以提高兼容性和效率,在C#上也可以实现,我记得OpenCV中文论坛上有一篇这样的帖子,你可以去搜一下

MFC中,主要就是使用CvvImage这个类,将IplImage转化为CvvImage,然后用CvvImage的DrawToHDC成员在MFC控件上显示出来。我没有用过C#,你试试获取控件的ID,然后调用CvvImage的copyof和DrawToHDC
IplImage img1
CvvImage img2;

img1.Load("example.tiff");
img2.CopyOf(img1, 3);

然后调用
img.DrawToHDC(hDC, &rect);

我以前在c++ builder中遇到过类似的问题,无法显示图片,我最后用windows api把IplImage的data考到内存中,然后新建一个bitmap的header和调色板 最后可以显示出来 这只是一个思路 希望可以帮到你

我没有做过这类事,但说一下我的想法嘛.你可以把捕获的视频做成二进制的数据放在内存,然后直接播放内存中的数据流,想必可以实现吧.

你是捕获视频截图还是流文件?截图的话C#的Bitmap对象和CPP的HBitmap对象可以相互转换。
流文件的话,你可以用
IVideoWindow iVideoWindow;
iVideoWindow=filterGraph as IvideoWindow;
iVideoWindow.put_Owner(picturebox.handle);

只是一个示例,没有调试,给你一个方向