图像采集卡内存数据获取的问题,急啊,各位大大帮忙啊

独上西楼 2013-02-19 11:19:38
图像采集,定义byte* pData = new (memSize),采集卡内存中有个Buffer存了N帧图像。如何获得Buffer中第N帧数据?采集卡手册提供Buffer结构为
SturctBuffer
{
......
byte** Buffer;
}
函数GetBufferStatus()可以返回SturctBuffer,SDK提供使用函数GetImge(byte*pSrc,byte*pDst)来获得Buffer中某一帧的数据。SDK强调,如果人为释放Buffer,DLL会崩溃。我是这么做的:StructBuffer struBuf = GetBufferStatus();
byte** pTemp = struBuf.Buffer;
pSrc= pTemp[N];
pDst = new [memSize]
GetImage(pSrc,pDst);
但是存储后的图像发现为黑色,数值全部为零,即pDst 中数据全为0,这是怎么回事呢?或者如何查看pDst中数据是否为0呢?多谢各位帮忙,急用啊
...全文
211 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
独上西楼 2013-02-23
  • 打赏
  • 举报
回复
引用 3 楼 fqzlala 的回复:
你知道**Buffer的大小吗?memcpy到pData试试
问题已经解决了,但是获得的数据顺序有问题。**Buffer的大小大概是800M,但是具体不确定。Buffer中存储的是N幅图像数据的起始地址。每个图像数据大小为cxWidth*cyHeight。随着采集卡不断向Buffer中写入数据,图像数目N会不断增加,直到存满为止。采集卡提供的API 函数 StructBufferStatus =GetBufferStatus()可以获取Buffer中当前写入数据所在的Buffer位置, struct StructBufferStatus { long BufferCount; byte**Buffer; long lastValidFrameSavedtoRAM; long TotalFrameCapturedbyCamera; long BufferSizeinMegaByte; } 我是利用lastValidFrameSavedtoRAM 作为nIndex 来获得最新图像数据的指针,即Buffer[nIndex ]; 实际得到的数据不是Buffer中的顺序,这是为何呢
肆水東澤 2013-02-20
  • 打赏
  • 举报
回复
你知道**Buffer的大小吗?memcpy到pData试试
独上西楼 2013-02-20
  • 打赏
  • 举报
回复
引用 1 楼 ouyh12345 的回复:
最好在SturctBuffer里增加结构本身的大小
结构里面是有结构大小的,我用省略号略去了。现在的问题是如何将**Buffer中的数据取出来赋值给byte *pData呢? 多谢啦!
ouyh12345 2013-02-20
  • 打赏
  • 举报
回复
最好在SturctBuffer里增加结构本身的大小

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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