C++ Basler Pylon 4 SDK和OPENCV 2.4.8,Linux简单查看器
我正在开发一个简单的摄像头查看器来测试Basler摄像头acA1300-30gc。我在Ubuntu 14.04中使用Basler Pylon 4和OPENCV 2.4.8版,因为我要开发一个机器视觉应用程序,我需要动态分析帧 基于Pylon文档中的示例代码,我编写了以下代码 代码:C++ Basler Pylon 4 SDK和OPENCV 2.4.8,Linux简单查看器,c++,linux,opencv,computer-vision,C++,Linux,Opencv,Computer Vision,我正在开发一个简单的摄像头查看器来测试Basler摄像头acA1300-30gc。我在Ubuntu 14.04中使用Basler Pylon 4和OPENCV 2.4.8版,因为我要开发一个机器视觉应用程序,我需要动态分析帧 基于Pylon文档中的示例代码,我编写了以下代码 代码: intmain(intargc,char*argv[]){ Pylon::PylonAutoInitTerm autoInitTerm; Mat图像(IM_高度、IM_宽度、CV_8UC3); cGrabResult
intmain(intargc,char*argv[]){
Pylon::PylonAutoInitTerm autoInitTerm;
Mat图像(IM_高度、IM_宽度、CV_8UC3);
cGrabResultPtrGrabResult;
//namedWindow(WIN\u NAME、CV\u WINDOW\u AUTOSIZE);
试一试{
CInstantCamera摄像机(CTlFactory::GetInstance().CreateFirstDevice());
cout GetWidth()*ptrGrabResult->GetHeight();
//如果(!image.empty())
//imshow(WIN_名称、图像);
//如果(等待键(30)=27){
//照相机。停止抓取();
//}
}
}
}catch(GenICam::GenericException&e){
cerr获取grab.cpp示例代码,并将以下代码添加到garb.cpp中,它就会工作
CImageFormatConverter fc;
fc.OutputPixelFormat = PixelType_BGR8packed;
CPylonImage image;
if (ptrGrabResult->GrabSucceeded())
{
fc.Convert(image, ptrGrabResult);
Mat cv_img = cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult->GetWidth(), CV_8UC3, (uint8_t*)image.GetBuffer());
imshow(src_window,cv_img);
waitKey(1);
}
获取grab.cpp示例代码,并将以下代码添加到garb.cpp中,它就会工作
CImageFormatConverter fc;
fc.OutputPixelFormat = PixelType_BGR8packed;
CPylonImage image;
if (ptrGrabResult->GrabSucceeded())
{
fc.Convert(image, ptrGrabResult);
Mat cv_img = cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult->GetWidth(), CV_8UC3, (uint8_t*)image.GetBuffer());
imshow(src_window,cv_img);
waitKey(1);
}
获取grab.cpp示例代码,并将以下代码添加到garb.cpp中,它就会工作
CImageFormatConverter fc;
fc.OutputPixelFormat = PixelType_BGR8packed;
CPylonImage image;
if (ptrGrabResult->GrabSucceeded())
{
fc.Convert(image, ptrGrabResult);
Mat cv_img = cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult->GetWidth(), CV_8UC3, (uint8_t*)image.GetBuffer());
imshow(src_window,cv_img);
waitKey(1);
}
获取grab.cpp示例代码,并将以下代码添加到garb.cpp中,它就会工作
CImageFormatConverter fc;
fc.OutputPixelFormat = PixelType_BGR8packed;
CPylonImage image;
if (ptrGrabResult->GrabSucceeded())
{
fc.Convert(image, ptrGrabResult);
Mat cv_img = cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult->GetWidth(), CV_8UC3, (uint8_t*)image.GetBuffer());
imshow(src_window,cv_img);
waitKey(1);
}
//Grab.cpp
/*
注意:在开始之前,Basler建议阅读程序员指南主题
在挂架C++ ++ API中,用挂架安装。
如果你升级到一个更高的主版本,Basler也可以
强烈建议阅读TopC++ C++ API文档中的迁移主题。
此示例演示了如何使用CInstantCamera类获取和处理图像。
异步抓取和处理图像,即。,
当应用程序处理缓冲区时,下一个缓冲区的获取完成
同时。
CInstantCamera类使用缓冲池来检索图像数据
一旦缓冲区填满并准备好,
可以从摄影机对象检索缓冲区进行处理。缓冲区
并在抓取结果中收集额外的图像数据
检索后由智能指针持有。缓冲区将自动重新使用
当显式释放或智能指针对象被销毁时。
*/
#包括
#ifdef塔架\u赢得\u建造
#包括
#恩迪夫
#包括“opencv2/highgui/highgui.hpp”
#包括“opencv2/imgproc/imgproc.hpp”
#包括“opencv2/core/core.hpp”
使用名称空间cv;
//用于使用挂架对象的命名空间。
使用名称空间挂架;
//用于使用cout的命名空间。
使用名称空间std;
//要抓取的图像数。
图像抓取的静态常数32_t c_计数=100;
int main(int argc,char*argv[])
{
//示例应用程序的退出代码。
int-exitCode=0;
//自动调用PylonInitialize和PylonTerminate以确保
//pylon运行时系统在此对象的生存期内初始化。
Pylon::PylonAutoInitTerm autoInitTerm;
cGrabResultPtrGrabResult;
namedWindow(“CV_图像”,窗口自动调整大小);
尝试
{
CInstantCamera摄像机(CTlFactory::GetInstance().CreateFirstDevice());
cout()){
fc.转换(图像、ptrGrabResult);
cv_img=cv::Mat(ptrGrabResult->GetHeight(),ptrGrabResult->GetWidth(),cv_8UC3,(uint8_t*)image.GetBuffer();
imshow(“CV_图像”,CV_img);
等待键(1);
如果(等待键(30)=27){
照相机。停止抓取();
}
}
}
}
catch(GenICam::GenericException&e)
{
//错误处理。
cerr//Grab.cpp
/*
注意:在开始之前,Basler建议阅读程序员指南主题
在挂架C++ ++ API中,用挂架安装。
如果你升级到一个更高的主版本,Basler也可以
强烈建议阅读TopC++ C++ API文档中的迁移主题。
此示例演示了如何使用CInstantCamera类获取和处理图像。
异步抓取和处理图像,即。,
当应用程序处理缓冲区时,下一个缓冲区的获取完成
同时。
CInstantCamera类使用缓冲池来检索图像数据
一旦缓冲区填满并准备好,
可以从摄影机对象检索缓冲区进行处理。缓冲区
并在抓取结果中收集额外的图像数据
检索后由智能指针持有。缓冲区将自动重新使用
当显式释放或智能指针对象被销毁时。
*/
#包括
#ifdef塔架\u赢得\u建造
#包括
#恩迪夫
#包括“opencv2/highgui/highgui.hpp”
#包括“opencv2/imgproc/imgproc.hpp”
#包括“opencv2/core/core.hpp”
使用名称空间cv;
//用于使用挂架对象的命名空间。
使用名称空间挂架;
//用于使用cout的命名空间。
使用名称空间std;
//要抓取的图像数。
图像抓取的静态常数32_t c_计数=100;
int main(int argc,char*argv[])
{
//示例应用程序的退出代码。
int-exitCode=0;
//自动调用PylonInitialize和PylonTerminate以确保
//pylon运行时系统在此对象的生存期内初始化。
Pylon::PylonAutoInitTerm autoInitTerm;
cGrabResultPtrGrabResult;
namedWindow(“CV_图像”,窗口自动调整大小);
尝试
{
CInstantCamera摄像机(CTlFactory::GetInstance().CreateFirstDevice());
cout()){
fc.转换(图像、ptrGrabResult);
cv_img=cv::Mat(ptrGrabResult->GetHeight(),ptrGrabResult->GetWidth(),cv_8UC3,(uint8_t*)image.GetBuffer();
imshow(“CV_图像”,CV_img);
等待键(1);
如果(等待键(30)=27){
照相机。停止抓取();
}
}
}
}
catch(GenICam::GenericExcept)