目录
一、VS+QT配置
二、VS+OpenCV
三、VS+灰点相机
1、VS-扩展-管理扩展-搜索qt-下载
2、下载Qt的工具包,在如下网址有所有的,下载 qt-opensource-windows-x86-5.14.2.exe,然后安装。
http://download.qt.io/archive/qt/5.14/5.14.2/
3、安装时需要注册账号。出现如下界面,如果你没有特殊要求,只需要勾选MSVC2017 32-bit/64bit即可。
4、在安装好QT扩展的vs中打开扩展-Qt VS Tools 中点击 Qt Option
将编译器路径填入。
项目属性-Qt ProjectSetting中选择刚刚命名的版本
至此Qt配置完成。
这个我参考的是这篇:
https://blog.csdn.net/Chris_zhangrx/article/details/79090463
安装编译已经讲的很详细,我就说说配置的注意事项。
i.VC++目录-常规 包含目录添加 图的Include文件夹。
库目录添加F:\opencv\install\x64\vc16\lib(不要复制,选择你自己的 路径)
ii.C/C++ 附加包含目录,继续添加include文件夹。
iii.链接器-常规-附加库目录-添加F:\opencv\install\x64\vc16\lib
链接器-输入-附加依赖项添加opencv_world3410d.lib(注意此时最后有d)。
最后换release,与其不同的时候添加附加依赖项是opencv_world3410.lib,是没有d的,意味着非debug版本。
1、SDK安装:
首先你要拿到灰点相机的SDK,如下所示,将其安装。出现选项的时候选择第二个SDK工具包
安装路径会出现如下文件夹。
2、配置:
首先配置环境路径:将E:\FLIR Systems\Spinnaker\bin\vs2015此路径文件夹加入你的环境变量。
打开你新建的关于灰点相机的项目,项目-项目属性,进行配置:
记住此时最好将 配置改为x64.
i.VC++目录-常规 包含目录添加 上图的Include文件夹。
库目录包含上图的lib64/vs2015文件夹
ii.C/C++ 附加包含目录,继续添加上图的include文件夹。
iii.链接器-常规-附加库目录-添加上图的lib64/vs2015文件夹
链接器-输入-附加依赖项添加Spinnakerd_v140.lib(注意此时最后有d)。
最后换release,与其不同的时候添加附加依赖项是Spinnaker_v140.lib,是没有d的,意味着非debug版本。
3、代码实现:
需要做的预设:
#include "Spinnaker.h" #include "SpinGenApi/SpinnakerGenApi.h" using namespace Spinnaker; using namespace Spinnaker::GenApi; using namespace Spinnaker::GenICam;如下是相机的初始化:
SystemPtr system = System::GetInstance(); CameraList camList = system->GetCameras(); //从系统中获取相机的列表 unsigned int numCameras = camList.GetSize(); if (numCameras == 0) { //清除相机列表 camList.Clear(); system->ReleaseInstance(); return -1; } //获取相机 CameraPtr pCam = camList.GetByIndex(0); //获取TL设备nodemap //INodeMap& nodeMapTLDevice = pCam->GetTLDeviceNodeMap(); /* FeatureList_t features; CCategoryPtr category = nodeMap.GetNode("DeviceInformation"); //获取设备的特征 category->GetFeatures(features);*/ //初始化相机 pCam->Init();如下是相机获取图片,请预先在SpinView里调整你想要的格式:
//开始采集 pCam->BeginAcquisition(); const unsigned int k_numImages = imageCount; for (unsigned int imageCnt = 1; imageCnt <=k_numImages; imageCnt++) { try { //捕获图像会使图像存储在缓冲区,一旦缓冲区中的图像被保存和/或不再需要时, //必须释放图像以保持缓冲区填满 //1000ms缓冲时间 ImagePtr pResultImage = pCam->GetNextImage(1000); ImagePtr convertedImage = pResultImage->Convert(PixelFormat_Mono16, HQ_LINEAR); Mat frame = Mat(convertedImage->GetHeight(), convertedImage->GetWidth(), CV_16UC1, convertedImage->GetData()); Mat downFrame = Mat::zeros(256,256,CV_16UC1); resize(frame,downFrame,downFrame.size()); image_process(downFrame,imageCnt); pResultImage->Release(); }catch (Spinnaker::Exception& e) { result = -1; break; } catch (cv::Exception& e) { emit signal_log(e.what()); result = -1; break; } } pCam->EndAcquisition(); }详细的API介绍请见http://softwareservices.flir.com/Spinnaker/latest/page2.html