C#+500万像素CCD,图像采集迟钝问题

茂一茂 2014-01-02 09:25:52
我是用以太网相机,采集每一帧时间大概是80ms左右,图像采集完直接显示,并没有做处理,出来的画面很流畅,但显示的大概是在3秒以前的图像,并不是很实时。
过程是图像采集的一个buffer里面,再从这个buffer复制到另一个图像控件的buffer,再显示出来。

while (cmdStart)
{
mResult = mPilpeline.RetrieveNextBuffer(ref lBuffer);
if (mResult.IsOK)
{
Console.WriteLine(lBuffer.Image.Width.ToString()+","+lBuffer.Image.Height.ToString());
ImageView.Image.SetSize((Int32)lBuffer.Image.Width, (Int32)lBuffer.Image.Height, FVIL.ImageType.UC8, 1);
int dwSize = (Int32)lBuffer.Image.Width * (Int32)lBuffer.Image.Height;
IntPtr lAddrImage = ImageView.Image.GetImageAdrs(0, 0, 0);
byte[] tImage = new byte[dwSize];
Marshal.Copy((IntPtr)lBuffer.Image.DataPointer, tImage, 0, dwSize);
Marshal.Copy(tImage, 0, lAddrImage, dwSize);
mPilpeline.ReleaseBuffer(lBuffer);
tImage = null;
}
}
...全文
573 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
libing422 2014-12-27
  • 打赏
  • 举报
回复
楼主的问题解决了吗?我也遇此问题,可否提供一下思路。
  • 打赏
  • 举报
回复
换成usb接口
SuperLy 2014-01-21
  • 打赏
  • 举报
回复
“过程是图像采集的一个buffer里面,再从这个buffer复制到另一个图像控件的buffer,再显示出来” 那么,先确认"图像采集的一个buffer里面"是否有数据延迟(比如突然制造高亮或者全黑,看看这个buffer里面数据延迟有多长); 再检查"从这个buffer复制到另一个图像控件的buffer"用了多长时间 再看复制完成后,到“图像控件显示出来”延迟又是多少(如果是这里慢,考虑更换控件),逐步处理; 附:精确计时,请采用CPU时间戳的方式(不要用什么多媒体计时器之类的CPU占用大户)
茂一茂 2014-01-02
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
采集这么快,得视频流吧?
不是,哪怕是用timer,每100ms采集一帧,也是很迟钝,看的画面都是2,3秒前的画面
青松2 2014-01-02
  • 打赏
  • 举报
回复
采集这么快,得视频流吧?

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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