图像采集回调函数中SendMessage问题?
手头上有一个工业相机,正在利用其SDK包二次开发,我是准备在图像采集回调函数中显示图像,回调函数代码如下:
其中StreamCB为全局函数,上述的代码显示图像没有问题,本来是想在回调函数中对图像做些处理的,如果在DisImage return之前调用了C_CWIMAQImage Imagetemp=m_vision.CreateCWIMAQImage();程序运行时会提示RunTime Error!!m_vision.CreateCWIMAQImage()中m_vision是NI的一个图像处理控件
后来我把回调函数改成了发送消息的方式,新的代码如下:
程序可以正常运行,我现在也不太清除问题出在哪,为什么发送消息的方式可以实现,这跟回调函数对UI界面的操作有没有什么关系,请大家发表下看法,谢谢了
int __stdcall StreamCB(MV_IMAGE_INFO *pInfo,long nUserVal)
{
CMVGigeDlg *pDlg = (CMVGigeDlg *)nUserVal;
//pDlg->p1=pInfo;
return pDlg->DisImage(pInfo);
//return ::SendMessage(pDlg->m_hWnd,WM_SNAP_CHANGE,0,0);
}
int CMVGigeDlg::DisImage(MV_IMAGE_INFO* pInfo)
{//ImgdataVar.parray->pvData=disbuffer;
ImgdataVar.parray->pvData=(WORD*)pInfo->pImageBuffer;
Image1.ArrayToImage(ImgdataVar);
//long imgsize=pInfo->nImageSizeAcq;
//C_CWIMAQImage Imagetemp=m_vision.CreateCWIMAQImage();
return 1;
}
其中StreamCB为全局函数,上述的代码显示图像没有问题,本来是想在回调函数中对图像做些处理的,如果在DisImage return之前调用了C_CWIMAQImage Imagetemp=m_vision.CreateCWIMAQImage();程序运行时会提示RunTime Error!!m_vision.CreateCWIMAQImage()中m_vision是NI的一个图像处理控件
后来我把回调函数改成了发送消息的方式,新的代码如下:
int __stdcall StreamCB(MV_IMAGE_INFO *pInfo,long nUserVal)
{
CMVGigeDlg *pDlg = (CMVGigeDlg *)nUserVal;
pDlg->p1=pInfo;
//return pDlg->DisImage(pInfo);
return ::SendMessage(pDlg->m_hWnd,WM_SNAP_CHANGE,0,0);
}
LRESULT CMVGigeDlg::OnSnapChange(WPARAM wParam,LPARAM lParam)
{ImgdataVar.parray->pvData=(WORD*)p1->pImageBuffer;
Image1.ArrayToImage(ImgdataVar);
C_CWIMAQImage Imagetemp=m_vision.CreateCWIMAQImage();
return 1;
}
程序可以正常运行,我现在也不太清除问题出在哪,为什么发送消息的方式可以实现,这跟回调函数对UI界面的操作有没有什么关系,请大家发表下看法,谢谢了
...全文
相关推荐
VB-2个窗体之间SendMessage简单示例.zip
2个窗体之间发送图片名称的简单示例: 1、发送端将获取的图片名发送给接收端 2、接收端将该图片显示在窗体上 3、接收端给发送端发送删除命令 4、发送端删除该图片 5、进行下一张图片的操作
工业相机SDK二次开发实战:从Demo到产品级视觉采集系统
在机器视觉与工业自动化领域,软件开发工具包(SDK)是连接硬件设备与应用软件的关键桥梁。其核心原理在于通过封装底层通信协议与硬件操作指令,为开发者提供标准化的编程接口,从而降低集成复杂度。这项技术的核心价值在于实现工业相机等专业设备的高效控制与图像数据稳定获取,广泛应用于智能制造、质量检测、机器人引导等场景。本文聚焦于工业相机SDK的二次开发实践,深入解析如何基于厂商提供的Visual C++示例程序(Demo),构建稳健的视频采集系统。文章将详细拆解环境配置、SDK集成、设备枚举、参数配置、图像回调与显示
用VFW和简易摄像头实现图像采集和处理.pdf
用VFW和简易摄像头实现图像采集和处理
视频采集与播放 windows
你可以使用windows的AVICap 类轻松地完成视频捕获。AVICap 提供给应用程序一个简单的、基于消息的接口去访问视频设备和录音设备,并且可以控制处理视频流捕获。
用摄像头抓取图像(C#编写)
在一些银行、大型商场、办公楼、升降电梯中,为了保障公有财产、商品、办公设备、资料、人身等的安全,都设有监控系统。在出现问题时,用户可以通过监控系统查找原因。下面的实例实现了摄像头监控功能。


界面
