【发布时间】:2014-09-30 14:21:41
【问题描述】:
我正在开发一个简单的相机查看器来测试 Basler 相机 acA1300-30gc。我正在使用 Basler Pylon 4 和 OPENCV 2.4.8 版在 Ubuntu 14.04 中工作,因为我要开发机器视觉应用程序并且需要动态分析帧。
基于OpenCV Display Image Tutorial、Pylon 文档中的示例代码和this similar question,我编写了以下代码。
代码:
int main(int argc, char* argv[]) {
Pylon::PylonAutoInitTerm autoInitTerm;
Mat image(IM_HEIGHT, IM_WIDTH, CV_8UC3);
CGrabResultPtr ptrGrabResult;
//namedWindow(WIN_NAME,CV_WINDOW_AUTOSIZE);
try {
CInstantCamera camera( CTlFactory::GetInstance().CreateFirstDevice());
cout << "Using device " << camera.GetDeviceInfo().GetModelName() << endl;
camera.StartGrabbing();
while(camera.IsGrabbing()){
camera.RetrieveResult( 5000, ptrGrabResult, TimeoutHandling_ThrowException);
if (ptrGrabResult->GrabSucceeded()){
memcpy(image.ptr(),ptrGrabResult->GetBuffer(),ptrGrabResult->GetWidth()*ptrGrabResult->GetHeight());
//if(!image.empty())
//imshow(WIN_NAME,image);
//if(waitKey(30)==27){
// camera.StopGrabbing();
//}
}
}
} catch (GenICam::GenericException &e) {
cerr << "An exception occurred." << endl << e.GetDescription() << endl;
}
//destroyWindow(WIN_NAME);
return 0;
}
我不知道为什么取消注释 namedWindow(WIN_NAME,CV_WINDOW_AUTOSIZE); 相机不再抓取。
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: c++ linux opencv computer-vision