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

Vimba相机二次开发教程,基于Python

文章目录

    • 安装
    • 获取图像
    • 辅助数据

Vimba 是由 Allied Vision 开发的一套软件开发套件(SDK),主要用于控制和操作其工业相机产品。它提供了一套完整的 API 和工具,支持多种操作系统和编程语言,便于开发者快速集成相机功能到应用程序中。下载地址Vimba。

安装

Vimba并不提供pip或者conda这种便捷的安装方式,一般在安装Vimba软件之后,其Python模块会被存放在其安装路径,在文件夹【VimbaPython_Source】下。如果只是想做一下测试,则可以在该文件夹下进行Python程序的测试

from vimba import *
with Vimba.get_instance() as vimba:cams = vimba.get_all_cameras()

这行代码的功能是,获取所有已经连接到的Vimba相机的属性。

如果想要更加灵活地使用该模块,也没关系,注意到文件夹中,有【setup.py】文件,可以通过下面的代码来为当前的python环境安装该模块

python setup.py install

这样就可以在任意工作路径中使用vimba了。

获取图像

【get_frame】可以从相机对象中获取一帧图像。为了保证安全,Vimba模块的许多操作都需要在with语句中进行,获取图像的示例如下

with Vimba.get_instance() as vimba:cams = vimba.get_all_cameras()with cams[0] as cam:frame = cam.get_frame()

【Frame】是Vimba特有的数据格式,通过调用其中的【get_buffer】可以获取其数据,在利用【get_height】得到图像的高度,理论上就可以恢复出一张图像了。但另一方面,这里更推荐使用两个转换函数

  • 【as_numpy_ndarray】转换为numpy数组
  • 【as_opencv_image】转换为opencv图像

下面将其转换为numpy数组后,查看图像

import matplotlib.pyplot as plt
import numpy as npimg = frame.as_numpy_ndarray()
img.shape       # (1032, 1296, 1)
plt.imshow(img, cmap='gray')
plt.show()

在这里插入图片描述
由于相机的镜头盖没打开,所以看到的是黑场。

辅助数据

【Camera】对象中封装了许多函数,可用于获取相机的工作参数,下面对其中的部分参数进行调用,以获取其设备温度、曝光时间以及帧率

with Vimba.get_instance() as vimba:cams = vimba.get_all_cameras()with cams[0] as cam:cam.DeviceTemperature.get()        # 40.5cam.ExposureTime.get()             # 4407.727cam.AcquisitionFrameRate.get()     # 69.8

其中

  • 【DeviceTemperature】用于获取设备温度
  • 【ExposureTime】用于获取曝光时间
  • 【AcquisitionFrameRate】为设定帧率

这些参数与Vimba软件的All选项卡中提供的参数一致,只需将其转换为大驼峰的命名方式即可。

http://www.dtcms.com/a/296148.html

相关文章:

  • R 语言科研配色 --- 第 81 期 (附免费下载的配色绘图PPT)
  • 【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程
  • 重生学AI第二十集(大结局):完善模型以及学习总结
  • 【STM32】FreeRTOS 任务的删除(三)
  • NX804NX810美光固态闪存NX815NX839
  • 人形机器人双足行走动力学:K-V模型其肌腱特性拟合中的应用
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型通过YoloV8深度学习模型实现工人安全装备(安全帽、手套、马甲等)检测识别 (C#)
  • C++高效实现轨迹规划、自动泊车、RTS游戏、战术迂回包抄、空中轨迹、手术机器人、KD树
  • 408——数据结构(第二章 线性表)
  • IPSec VPN -- 野蛮模式
  • windows11新建文件夹重命名时总是出现加载界面卡死状态
  • javaweb面试
  • 数据结构实验-查找与排序算法
  • 游戏开发Unity/ ShaderLab学习路径
  • 【独立工具】小红书图片采集软件
  • ExoCode.ino - OpenExo
  • Lua(文件I/O)
  • Claude4、GPT4、Kimi K2、Gemini2.5、DeepSeek R1、Code Llama等2025主流AI编程大模型多维度对比分析报告
  • PHP 与 Vue.js 结合的前后端分离架构
  • 虚拟机导入导出ova文件
  • Nginx 运维实战:动静分离,加速静态资源访问!
  • vue3:十八、内容管理-搜索栏的完善
  • C++之Stack和Queue的常用函数+习题
  • 若依框架在 IDEA 中运行的前置软件环境配置指南
  • XORM完全指南:Go语言数据库操作从入门到进阶
  • DS18B20扩展:在数码管上显示温度时包含小数部分
  • 黑马点评系列问题之p44实战篇商户查询缓存 jmeter如何整
  • 【基础】go基础学习笔记
  • OpenCV —— 绘制图形
  • 实验研究 | VR虚拟现实环境中植物景观偏好与生理恢复性效益研究