我目前正在开发使用Basler相机acA1300-30gc的机器视觉应用程序。为此,我正在使用Basler Pylon 4和OPENCV 2.4.9版,并且出现了一些问题。我正在尝试使用Pylon SDK捕捉图像并将其转换为Mat格式以供进一步分析。由于处理时间限制,我的目标是避免将图像保存到硬盘驱动器,但要实时分析它。Basler Pylon 4 SDK和OPENCV 2.4.9,CPylonImage到Mat
在下面的代码中,我尝试捕获图像,将其转换为Mat格式并将其显示在新窗口中,但我得到的窗口是空白的。如果有人能帮助我,请确认我的错误或解释我怎样才能以不同的方式达到我的目标,我将不胜感激。 (我可能应该补充说,相机正常工作,我已经能够保存图像到硬盘驱动器)。
谢谢。
这里是我的代码:
PylonAutoInitTerm autoInitTerm;
try
{
CInstantCamera camera(CTlFactory::GetInstance().CreateFirstDevice());
cout << "Dispositivo usado:"<
CGrabResultPtr ptrGrabResult;
camera.GrabOne(500,ptrGrabResult,TimeoutHandling_ThrowException);
if(ptrGrabResult->GrabSucceeded())
{
CPylonImage target;
CImageFormatConverter converter;
converter.OutputPixelFormat=PixelType_RGB8packed;
converter.OutputBitAlignment=OutputBitAlignment_MsbAligned;
converter.Convert(target,ptrGrabResult);
Mat image(target.GetWidth(),target.GetHeight(),CV_8UC1,target.GetBuffer(),Mat::AUTO_STEP);
if(image.empty())
{
cout << "No se pudo cargar la imagen Mat" << endl;
return -1;
}
cout << "La imagen se presenta en la ventana *Captura*" << endl;
namedWindow("Captura",WINDOW_AUTOSIZE);
imshow("Captura", image);
}
else
{
cout<GetErrorCode()<GetErrorDescription()<
}
}
2014-06-08
Eric