关于视频图像实时处理的问题,求高手解答!!!

sc88zy 2010-12-15 05:24:07
在一个采集卡采集图像处理中,需要对采集到的视频做实时处理。

用C#来调用C++的DLL,在DLL中,有一个用来获取一张图片到内存和获取图像格式头信息的3个函数:

函数1:获取图像格式头信息

LONG APIENTRY devwdm_GetBmpInfo(void *bmHdr);


函数2:获取采集一帧RGB24图像到内存

LONG APIENTRY devwdm_GetImageBuffer(BYTE *pImageMem);


函数3:采集一帧YUY2图像数据到内存

LONG APIENTRY devwdm_CopyImageYUVMem(BYTE *pMem);


我在C#中是这样调用的:

[DllImport("devwdm.dll")]
//函数功能:采集一帧RGB24图像到内存 pImageMem:图像缓冲区指针
public static extern int devwdm_GetImageBuffer(IntPtr pImageMem);

[DllImport("devwdm.dll")]
//函数功能: 采集一帧YUY2图像数据到内存
//pMem: 图像缓冲区指针
public static extern int devwdm_CopyImageYUVMem(IntPtr pMen);

[DllImport("devwdm.dll")]
// //函数功能:获取图像格式头信息 bmHdr:图像格式头指针
public static extern int devwdm_GetBmpInfo(IntPtr bmHdr);



问题是,如何用C#来对视频进行实时处理呀?从内存中读取图像吗?这样的话怎么处理?需要每秒采集几幅图像然后对其处理之后再动态显示出来,然后释放掉内存吗?

我是菜鸟,实在不懂啊,还希望高手们不吝赐教,感激不尽啊!!!
在线等!!!
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
之握成 2011-12-28
  • 打赏
  • 举报
回复
我想要devwdm.DLL,楼主能不能给我?jiyong012@163.com
xingyuebuyu 2010-12-15
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20101215/21/b39acb15-6587-4086-9020-1d00ef38c72f.html?52518

你可以先试试用C++来处理这个问题,流程确认清楚后再用C#
sc88zy 2010-12-15
  • 打赏
  • 举报
回复
设置好参数之后报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

经人指点,说C++中的byte*,在C#中应转化为byte[],但是还是报该错误
sc88zy 2010-12-15
  • 打赏
  • 举报
回复
回复3楼:估计是您误解我的意思了,API中有显示视频的函数,我是想对其视频做实时处理,然后对处理之后的进行显示......
mjp1234airen4385 2010-12-15
  • 打赏
  • 举报
回复
你只能通过显示视频的函数来实现视频的实施显示。
通过图片虽然也可以,但是效果估计比较差。
你实在想做,提供2个思路:
1.知道视频的帧数/秒,然后用时钟循环,每秒抓取这么多的图像,并且每抓一张就把图像画到一个画布上。例如picturebox就行。当然,画图的技术要过关,使用GDI+不行的话,就是用DirectShow处理。就是你现在要实现的思路。
2.在实时视频上查看,当需要抓图的时候,调用抓图接口,抓取图片。
sc88zy 2010-12-15
  • 打赏
  • 举报
回复
回复1楼:
是有现实视频的函数,现在是需要对视频做动态处理,然后对比显示呀
ztenv 2010-12-15
  • 打赏
  • 举报
回复
应该有直接显示视频的函数或提供了com控件

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧