最近使用FLIR工业相机做图像处理和界面设计,因此想把过程记录下来,方便以后查找和参考,同时避免过程中的坑。
为什么不直接使用qt,是因为在qt中调用python程序一直失败,并且找不到原因。
官方直接下载安装程序即可,VS需要注册。
VS下载地址:
https://docs.microsoft.com/en-us/visualstudio/?view=vs-2019
QT下载地址:
https://www.qt.io/
-
打开vs2017,点击工具-扩展和更新 搜索框输入QT,在联机里搜索,选择QT Vsiual Studio
-
Tools并安装(安装需要关闭VS,之后开始安装) 装好重新打开VS,菜单栏多出个QT VS Tools,点击QT Options
-
点击Add,添加路径,选择QT目录里的MSVC,在QT的安装目录下找(根据自己电脑QT安装的位置),QT会自动识别版本
-
新建项目->Vsiual C++ -> QT -> Qt Gui Application
-
导航菜单直接next,finish,这些配置后面可再更改。
-
一个VS下的QT工程就建好了,目录和QTCreator里基本一致,点击xx.ui能够弹出QTdesigner来设计界面
Spinnaker sdk是FLIR工业相机的使用库,按照系统参数进行下载,
下载地址
安装过程中,有两个安装选择,其中第一个会直接安装一个exe,这个是公司提供的一个直接可以调用摄像头的程序,功能很强大,不过我们需要自己调用SDK,所以选择第二个。
安装完成后,在安装路径下会出现以下文件:
-
新建空项目
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-C/C+±常规-附加包含目录,添加Spinnaker sdk安装目录下的include文件夹
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-链接器-常规-附加库目录,添加Spinnaker sdk安装目录下的lib64\vs2015文件夹
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-链接器-输入-附加依赖项,添加Spinnaker sdk安装目录下的lib64\vs2015文件夹里的lib文件名。请注意,debug模式请输入*d_v140.lib,其中d表示debug配置,140表示版本号,如“Spinnakerd_v140.lib”,需要使用什么功能,添加对应的lib文件即可,如果不确定,请添加所有以d_v140结尾的文件名。
可直接复制下面的内容。
Spinnaker_v140.lib
Spinnakerd_v140.lib
SpinnakerC_v140.lib
SpinnakerCd_v140.lib
SpinnakerGUI_WPF_v140.lib
SpinnakerGUI_WPFd_v140.lib
SpinnakerGUISelector_WPF_v140.lib
SpinUpdate_v140.lib
SpinVideoC_v140.lib
SpinVideoCd_v140.lib
SpinVideo_v140.lib
SpinVideod_v140.lib
opencv
下载地址
opencv下载之后是个exe文件,安装就是解压的过程,解压之后也需要在VS2017进行配置。
-
配置环境变量:控制面板-系统安全-系统-高级系统设置-环境变量
在系统变量path中新建:…\opencv\build\x64\vc15\bin
-
在VS2017项目中操作
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-VC++目录-常规-包含目录,添加opencv安装目录下的include文件夹
…\opencv\build\inclued
…\opencv\build\inclued\opencv2
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-VC++目录-常规-库目录,添加opencv安装目录下的lib文件夹
…\opencv\build\inclued\x64\vc15\lib
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-链接器-输入-附加依赖项,添加*.lib文件
opencv_world400.lib
opencv_world400d.lib
python安装时勾选
Add to path
,
下载地址
-
在VS2017项目中操作
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-VC++目录-常规-包含目录,添加python安装目录下的include文件夹
博主需要使用图像处理,因此需要使用numpy库,因此顺带配置了numpy库
…\python\inclued
…\python\python38\Lib\site-packages\numpy\core\include
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-VC++目录-常规-库目录,添加python安装目录下的lib文件夹
…\python\libs
-
属性管理器-Debug或者Release-双击Microsoft.Cpp.x64.user-链接器-输入-附加依赖项,添加*.lib文件
没有python38_d.lib文件,复制python38.lib重命名为python38_d.lib
python38.lib
python38_d.lib
-
python环境与VS工程环境一致,我都用的X64
-
debug与release对应的库文件一定要一致
-
python与qt中的关键词slots有冲突,因此在引用python头文件时需要加入代码
#undef slots
#include <Python.h>
#define slots Q_SLOTS
————————————————————————————
本文完。
下一篇主要内容是在UI界面中调用FLIR相机,并进行实时显示。
系列文章目录一、环境配置:win10+VS2017+qt5+spinnaker+opencv+python二、相机调用:VS2017+qt5调用FLIR工业相机实时成像三、图像处理:C++调用pytorch模型实时处理相机图像环境配置:win10+VS2017+qt5+spinnaker+opencv+python系列文章目录1.VS2017配置QT环境1.1.软件安装1.2.在VS中使用qt2.Spinnaker的配置2.1.Spinnaker GUI的安装2.2.VS2017工程配置3.Op
安装包地址
https://flir.app.boxcn.net/v/SpinnakerSDK/folder/68522911814
选择最新的安装包SpinnakerSDK_FULL_2.0.0.146_x64.exe
在安装时注意选择安装VS2015解决方案配套的库。
2.环境配置
在VS2015工程管理器中配置相关的库,我的安装位置是E:\spinnaker。
包含目录:E:\spinnaker
一、环境配置:win10+VS2017+qt5+spinnaker+opencv+python
二、相机调用:VS2017+qt5调用FLIR工业相机实时成像
三、图像处理:C++调用pytorch模型实时处理相机图像
相机调用:VS2017+qt5调用FLIR工业相机实时成像系列文章目录1.新建项目2.项目文件编辑
本文通过在VS2017中新建Qt项目,调用FLIR近红外工业相机,并在UI界面实时显示相机数据。
原理是编写一个图像更新函数采集图片数据,设置一个定时器,当定时器时间耗尽就
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44496838/article/details/108781259
——————————————
FLIR_camera_wrapper_for_Qt5_and_PyQt5
Qt相机类,具有用于Spinnaker FLIR相机的图像接收生成信号
Qt摄像机类,具有用于Spinnaker FLIR摄像机的图像接收信号。 通过将Qt Signal对象连接到Spinnaker库的图像事件处理程序,这是可能的。 它可以提高每秒帧的速度,并减少轮询例程通过Spinnaker对象接收和提供图像的工作量。 它同时支持Qt和PyQt5(分别命名为qt_camera和pyqt_camera)。
有三种触发相机硬件的方式。 默认值为“无触发”,即无需提供任何触发,并且可以随时访问流式图像。 第二个是软件触发器,其中在执行“ sendSwTrigger()”之后可以使用图像。 最后是硬件触发器。 仅当将电气PWM连接到外部Hirose Connector的特定输入端口时,摄像机才会通过Qt信号提供图
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 Optio...
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG"))
# 读取图像
ret, frame = cap.read()
# 显示图像
cv2.imshow("FLIR Camera", frame)
# 等待按键
cv2.waitKey(0)
# 释放相机对象
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
希望对你有所帮助!