当前位置: 首页 > news >正文

代替Spinnaker 的 POINTGREY工业级相机 FLIR相机 Python编程案例

SpinnakerSDK_FULL_4.0.0.116_x64 是一个用于FLIR相机的SDK,主要用于图像采集和处理。Spinnaker SDK主要提供C++接口,无法直接应用在python环境。本文则基于Pycharm2019+python3.7的环境下,调用opencv,EasySpin,PySpin,的库实现POINTGREY工业级相机的开发。

1.Spinnaker SDK
首先,需要去Spinnaker SDK | Teledyne FLIR官网上下载相应的SDK

选择WINDOWS,解压得到一下文件

 下载Latest Spinnaker Full SDK中的SDK

下载完成后打开SpinView查看是否有用(之前想做FlyCapture但是FlyCapture打不开)

2.Pycharm+Python的环境(可自行配置)
3.EasyPySpin库
        在查找相关资料的时候在git-hub上找到了一个库,该库能够实现用opencv的方式调用Spinnaker的摄像头方便后续的图像处理。
elerac/EasyPySpin: cv2.VideoCapture like wrapper for FLIR Spinnaker SDK (github.com)
https://github.com/elerac/EasyPySpin

        相关使用说明在其中,在Pycharm中能够通过Seting搜索

         进行下载

4.PySpin
        如果只调用EasyPySpin的库直接运行程序,会提示缺少PySpin的库函数因此需要安装PySpin库,该库不能通过setting进行安装需要

利用 Latest Python Spinnaker中的whl文件进行安装

选择对应版本的Spin(其中cp是对应python的版本)

然后安装whl的文件

使用pip install 文件名.whl 

5.运行Example程序
"""A simple example of capturing and displaying an image
"""
import EasyPySpin
import cv2
def main():
    cap = EasyPySpin.VideoCapture(0)
 
    if not cap.isOpened():
        print("Camera can't open\nexit")
        return -1
 
    cap.set(cv2.CAP_PROP_EXPOSURE, -1)  # -1 sets exposure_time to auto
    cap.set(cv2.CAP_PROP_GAIN, -1)  # -1 sets gain to auto
 
    while True:
        ret, frame = cap.read()
        # frame = cv2.cvtColor(frame, cv2.COLOR_BayerBG2BGR)  # for RGB camera demosaicing
 
        img_show = cv2.resize(frame, None, fx=0.25, fy=0.25)
        cv2.imshow("press q to quit", img_show)
        key = cv2.waitKey(30)
        if key == ord("q"):
            break
 
    cap.release()
    cv2.destroyAllWindows()
 
 
if __name__ == "__main__":
    main()

结果如下:

"""A simple example of capturing and displaying an image
"""
import EasyPySpin
import cv2
import numpy as np
import math
import copy
 
 
 
def main():
    cap = EasyPySpin.VideoCapture(0)
 
    if not cap.isOpened():
        print("Camera can't open\nexit")
        return -1
    frameNum = 0
 
    cap.set(cv2.CAP_PROP_EXPOSURE, -1)  # -1 sets exposure_time to auto 自动曝光时间
    cap.set(cv2.CAP_PROP_GAIN, -1)  # -1 sets gain to auto              自动增益
 
    while True:
        ret, frame = cap.read()
        # frame = cv2.cvtColor(frame, cv2.COLOR_BayerBG2BGR)  # for RGB camera demosaicing
        frameNum += 1
        if ret == True:
            tempframe = frame
            if (frameNum == 1):
                previousframe = frame
                print(111)
            if (frameNum >= 2):
                currentframe = tempframe
                currentframe = cv2.absdiff(currentframe, previousframe) #帧差法图
 
                median = cv2.medianBlur(currentframe, 3)  #中值滤波
 
                ret, threshold_frame = cv2.threshold(currentframe, 20, 255, cv2.THRESH_BINARY)
                gauss_image = cv2.GaussianBlur(threshold_frame, (3 ,3), 0)
                contours, hierarchy = cv2.findContours(threshold_frame, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
 
                yuantu_show = cv2.resize(frame, None, fx=0.25, fy=0.25)
                intital_show = cv2.resize(frame, None, fx=0.25, fy=0.25)
                img_show = cv2.resize(gauss_image, None, fx=0.25, fy=0.25)
 
                # 画出矩形轮廓
                for i in range(0, len(contours)):
                    x, y, w, h = cv2.boundingRect(contours[i])
                    cv2.rectangle(yuantu_show, (x, y), (x + w, y + h), (255, 255, 0), 2)
 
 
 
 
                #图片显示
                cv2.imshow('yuantu', intital_show)
                cv2.imshow('lunkou', yuantu_show)  # 原图显示
                #cv2.imshow('tuxiangchuli', img_show) # 经过高斯滤波之后
                #cv2.imshow('lvbo', median)
 
                #时间延迟
                key = cv2.waitKey(30)
 
                #按q退出
                if key == ord("q"):
                    break
    #释放内存
    cap.release()
    cv2.destroyAllWindows()
 
 
if __name__ == "__main__":
    main()

利用帧差法进行视频的图像处理

 

相关文章:

代替Spinnaker 的 POINTGREY工业级相机 FLIR相机 Python编程案例

SpinnakerSDK_FULL_4.0.0.116_x64 是一个用于FLIR相机的SDK,主要用于图像采集和处理。Spinnaker SDK主要提供C接口,无法直接应用在python环境。本文则基于Pycharm2019python3.7的环境下,调用opencv,EasySpin,PySpin,的库实现POINTGREY工业级相…...

网络篇12 | SSH2协议应用,禁SFTP子模式实现文件传输

网络篇12 | SSH2的应用 解决的业务问题协议选定SSH2(Secure Shell 2,目前基本用这个)SSH1(Secure Shell 1)Telnet 代码实现落地方案1:ganymed-ssh2maven坐标关键源代码技术效果验证连接高版本OpenSSH报错分…...

MetaGPT实现多动作Agent

异步编程学习链接 智能体 LLM观察思考行动记忆 多智能体 智能体环境SOP评审路由订阅经济 教程地址 多动作的agent的本质是react,这包括了think(考虑接下来该采取啥动作)act(采取行动) 在MetaGPT的examples/write_…...

docker更新镜像源

常用的国内 Docker 镜像加速器 1. 阿里云镜像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 2. 腾讯云镜像加速器:https://cloud.tencent.com/document/product/457/33221 3. 网易云镜像加速器:https://hub-mirror…...

TSmaster Trace 窗口

文章目录 1、设置显示刷新率2、设置显示报文格式3、报文过滤3.1 基于报文通道3.2 基于报文 ID过滤3.3 基于过滤字符串(FilterString)过滤 4、信号的折叠与展开5、固定显示和时间顺序显示切换6、关闭窗体 1、设置显示刷新率 为了降低软件 CPU 占用率&…...

【Python模拟websocket登陆-拆包封包】

Python模拟websocket登陆-拆包封包 解析一个网站获取wss原始数据拆包wss数据封包wss数据发送接收websocket的常驻后台脚本总结 解析一个网站 这里所用的网站是我一个内测的网站,主要手段是chrome devtools,用得很多,但我玩的不深&#xff0c…...

速盾:海外服务器使用CDN加速有什么好处?

随着互联网的快速发展和全球化的需求增加,海外服务器的使用已经成为许多公司和个人的首选。与此同时,为了提供更好的用户体验和更快的网页加载速度,使用CDN(内容分发网络)加速海外服务器已经成为一个普遍的选择。CDN可…...

windows系统中实现对于appium的依赖搭建

Node.js:Appium是基于Node.js的,因此需要安装Node.js。可以从Node.js官网下载并安装。 Java Development Kit (JDK):用于Android应用的自动化测试,需要安装JDK。可以从Oracle官网下载并安装。 Android SDK:进行Andro…...

使用MATLAB进行字符串处理

MATLAB是一个强大的数学和计算机科学的软件工具包。它拥有一个灵活的字符串处理工具,可以用于处理和转换不同格式的字符串,例如,数值、日期、时间等。本文将探讨如何使用MATLAB进行字符串处理,以及如何利用它来解决实际问题。 在…...

Sourcetree登录GitLab账号

1. 在GitLab上创建个人访问令牌 在gitlab中点击右上角的头像图标,选择设置进入 Access Tokens(访问令牌) 页面填写令牌名称和到期时间,指定Scopes(范围)。一般选择read_repository和api点击 Create person…...

Linux进阶:软件安装、网络操作、端口、进程等

软件安装 yum 和 apt 均需要root权限 CentOS系统使用: yum [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y,自动确认 Ubuntu系统使用 apt [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y&…...

光猫、路由器、交换机之连接使用(Connection and Usage of Optical Cats, Routers, and Switches)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...

2025蓝桥杯(单片机)备赛--扩展外设之超声波测距原理与应用(十一)

1 超声波测距原理 接收器接到超声波的时间差。超声波发射器想某一方向发射波,再发射时刻开始计时 超声波在空气中传播,遇到障碍物则返回,超声波接收器收到反射波,立即停止计时。 SOR4原理: 通过IO口(TRIG…...

分布式数据库中间件可以用在哪些场景呢

在数字化转型的浪潮中,企业面临着海量数据的存储、管理和分析挑战。华为云分布式数据库中间件(DDM)作为一款高效的数据管理解决方案,致力于帮助企业在多个场景中实现数据的高效管理和应用,提升业务效率和用户体验。九河…...

MyBatis-Plus分页插件IPage用法

首先就是service接口需要继承IService<entity> 然后就是业务类实现类中需要继承ServiceImpl<Mapper,entity> Mapper正常写法&#xff0c;继承baseMapepr<entity> IPage的使用方式 QueryWrapper<MdSaleDayPhone> queryWrappernew QueryWrapper<>…...

使用MATLAB进行遗传算法设计

遗传算法是一种基于自然进化的计算方法&#xff0c;在解决各种优化问题方面具有广泛的应用。MATLAB作为一种强大的数学软件&#xff0c;可以方便快捷地实现遗传算法&#xff0c;并且通过可视化的方式直观地展现算法运行过程和结果。本文将介绍使用MATLAB进行遗传算法设计的步骤…...

mindtorch study

安装 pip install mindtorch mindtorch 用于帮助迁移torch模型到mindspore 大部分都可以直接把mindtorch的torch搞成torch&#xff0c;就和以前的代码一致&#xff0c;注意下面 只有静态图有点点差异 step也有差异 自定义优化器就麻烦了。 pyttorch还是牛啊 并行计算还是用的…...

java八股-SpringCloud微服务-Eureka理论

文章目录 SpringCloud架构Eureka流程Nacos和Eureka的区别是&#xff1f;CAP定理Ribbon负载均衡策略自定义负载均衡策略如何实现&#xff1f;本章小结 SpringCloud架构 Eureka流程 服务提供者向Eureka注册服务信息服务消费者向注册中心拉取服务信息服务消费者使用负载均衡算法挑…...

2024信创数据库TOP30之蚂蚁集团OceanBase

数据库作为存储、管理和分析这些数据的关键工具&#xff0c;其地位自然不言而喻。随着信息技术的日新月异&#xff0c;数据库技术也在不断演进&#xff0c;以满足日益复杂多变的市场需求。近日&#xff0c;备受瞩目的“2024信创数据库TOP30”榜单由DBC联合CIW/CIS权威发布&…...

查找redis数据库的路径

Redis 数据库的路径通常由配置文件中的 dir 参数指定 查找 Redis 配置文件&#xff1a; Redis 配置文件通常命名为 redis.conf。您可以在以下位置查找它&#xff1a; /etc/redis/redis.conf&#xff08;Linux 系统上的常见位置&#xff09;/usr/local/etc/redis/redis.conf&…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...