在工业流水线上,图像处理机器最常见的拍摄模式是拍摄一组图,处理一组图,最后显示某个图。
在这个过程中,难点不是单独的实现某个步骤,而是建立这3个过程中对某张图的链接关系。比如,第5张图片的处理结果有问题,那么,如何根据5这个关键字找到图像存放的内存,并将其显示在界面上?答案就是图像ID的使用。
开辟图像内存
开辟的内存是用于保存拍摄的图片。
将图像打入开辟的图像内存
void CFunTest::CallbackFunc(UINT nCamera, BYTE* pByte, UINT nChannel, CSize ImageSize)//回调函数
{
//pByte是触发得到的图片内存
...
//将触发的图像内存存到开辟的图像空间
memcpy(m_VecImageByte[nCamera].at(nPlate).at(nCameraId), pByte, nChannel*ImageSize.cx*ImageSize.cy);
...
}
图像处理并显示结果