开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition

开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition

  • 简介
  • 源码
  • 函数说明
    • arv_camera_new
    • arv_camera_acquisition
    • arv_camera_get_model_name
    • arv_buffer_get_image_width
    • arv_buffer_get_image_height

简介

本文针对官方例程中的第一个例程:single-acquisition做简单的讲解,并简单分析其中调用的arv_camera_new arv_camera_acquisitionarv_camera_get_model_name arv_buffer_get_image_width arv_buffer_get_image_height 函数。

aravis版本:0.8.31
操作系统:ubuntu-20.04
gcc版本:9.4.0

源码

/* SPDX-License-Identifier:Unlicense *//* Aravis header */#include <arv.h>/* Standard headers */#include <stdlib.h>
#include <stdio.h>/** Connect to the first available camera, then acquire a single buffer.*/int main (int argc, char **argv)
{ArvCamera *camera;ArvBuffer *buffer;GError *error = NULL;/* Connect to the first available camera */camera = arv_camera_new (NULL, &error);//camera = arv_camera_new ("192.168.6.23", &error);if (ARV_IS_CAMERA (camera)) {printf ("Found camera '%s'\n", arv_camera_get_model_name (camera, NULL));/* Acquire a single buffer */buffer = arv_camera_acquisition (camera, 0, &error);if (ARV_IS_BUFFER (buffer)) {/* Display some informations about the retrieved buffer */printf ("Acquired %d×%d buffer\n",arv_buffer_get_image_width (buffer),arv_buffer_get_image_height (buffer));/* Destroy the buffer */g_clear_object (&buffer);}/* Destroy the camera instance */g_clear_object (&camera);}if (error != NULL) {/* An error happened, display the correspdonding message */printf ("Error: %s\n", error->message);return EXIT_FAILURE;}return EXIT_SUCCESS;
}

此例程较为简单,每一步的细节查看注释即可,此处不过多讲解。
运行结果:
在这里插入图片描述

函数说明

arv_camera_new

简介:创建一个ArvCamera对象,如果name是NULL,则连接第一个可用的相机。

ArvCamera* arv_camera_new (const char* name, GError** error)

如果是Gige相机,name的格式可以是:

  • <vendor>-<model>-<serial>
  • <vendor_alias>-<serial>
  • <vendor>-<serial>
  • <user_id>
  • <ip_address>
  • <mac_address>

例如:

  • The Imaging Source Europe GmbH-DFK 33GX265-39020369
  • The Imaging Source Europe GmbH-39020369
  • TIS-39020369
  • 192.168.0.2
  • 00:07:48:af:a2:61

Available since 0.8.0

arv_camera_acquisition

简介:获取一帧图像。
注意:①本函数会将相机设置为单帧采集模式②返回的buffer最终必须要通过g_object_unref()释放

ArvBuffer* arv_camera_acquisition(ArvCamera* camera,         guint64 timeout,     //采集超时时间,单位µsGError** error)

Available since: 0.8.0

arv_camera_get_model_name

简介:获取相机型号名称

const char* arv_camera_get_model_name (ArvCamera* camera, GError** error)

Available since 0.8.0

arv_buffer_get_image_width

简介:获取图片的width
注意:此函数只能在buffer payload为ARV_BUFFER_PAYLOAD_TYPE_IMAGEARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATAARV_BUFFER_PAYLOAD_TYPE_MULTIPART时使用

gint arv_buffer_get_image_width(ArvBuffer* buffer)

Available since: 0.4.0

arv_buffer_get_image_height

简介:获取图片的height
注意:此函数只能在buffer payload为ARV_BUFFER_PAYLOAD_TYPE_IMAGEARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATAARV_BUFFER_PAYLOAD_TYPE_MULTIPART时使用

gint arv_buffer_get_image_height(ArvBuffer* buffer)

Available since: 0.4.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVSplat:稀疏多视点图像的高效3D高斯溅射

MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images MVSplat&#xff1a;稀疏多视点图像的高效3D高斯溅射 Yuedong Chen1  Haofei Xu2,3  Chuanxia Zheng4  Bohan Zhuang 粤东陈浩飞徐 2,3 郑传霞 4 庄伯涵1 Marc Pollefeys2,5  Andreas Geiger3  T…

breakpad编译

​​​​​​​https://chromium.googlesource.com/breakpad/breakpad//master 或者git hub上 在thirty-party/lss下拷贝下面头文件 https://chromium.googlesource.com/linux-syscall-support/ You can also cd to another directory and run configure from there to buil…

服务器上部署GPU版的milvus向量数据库

1、安装docker compose 我们可以从 Github 上下载它的二进制包来使用&#xff0c;最新发行的版本地址&#xff1a; https://github.com/docker/compose/releases sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)…

长波热红外应用

长波热红外通常是指波长范围在8至14微米之间的红外辐射。这种红外辐射主要来自于物体的热能&#xff0c;因此也称为热红外辐射。相比于短波红外&#xff0c;长波热红外更适合用于测量和探测物体的温度&#xff0c;因为它们能够捕捉到物体辐射的长波长热能&#xff0c;从而提供更…

web自动化系列-selenium find_elements定位方法详解(八)

接上文 &#xff1a; web自动化测试系列-selenium css_selector定位方法详解(七)-CSDN博客 前面已经介绍了8种定位方法 &#xff0c;大多数情况下我们都会优先使用这8种方法 。 但有的时候在你选择定位元素时 &#xff0c;会出现多个同样的定位属性和值 。而且你能选择定位也…

前端框架模板

前端框架模板 1、vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 **功能&#xff1a;**https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能 **GitHub地址&#xff1a;**GitHub - PanJiaChen/vue-element-admin: :t…

机器学习实战-k近邻分类

k-近邻算法&#xff08;KNN&#xff09; 一。工作原理 存在一个样本数据集合&#xff0c;即训练样本集&#xff0c;并且样本集中每个数据都存在标签&#xff08;样本集中每一数据与所属分类的对应关系&#xff09;&#xff0c; 输入没有标签的新数据后&#xff0c;将新数据的…

脚本开发与自动化运维----shell脚本开发及其在DevOps中的应用

一.正则表达式 正则表达式(Regular Expression、regex 或 regexp, 缩写为RE), 又称规则表达式,是计算机科学中的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如&#xff0c; a 到 z 之间的字母)和特殊字符(称为“…

信也科技网络自动化实践-网络策略管理

1、背景 随着各种法律法规和行业标准的出台和更新&#xff0c;企业或组织需要遵守各种安全合规性要求。网络安全策略管理需要符合这些要求&#xff0c;从而保障企业或组织的安全和合规性。网络安全策略管理需要涵盖企业或组织的整个网络生命周期&#xff0c;包括网络规划、设计…

场景文本检测识别学习 day04(目标检测的基础概念)

经典的目标检测方法 one-stage 单阶段法&#xff1a;YOLO系列、SSD系列 one-stage方法&#xff1a;仅预测一次&#xff0c;直接在特征图上预测每个物体的类别和边界框输入图像之后&#xff0c;使用CNN网络提取特征图&#xff0c;不加入任何补充&#xff08;锚点、锚框&#x…

第二十章hive

1) 窗口函数 over&#xff08;partition by 分组字段 order by 排序字段 rows between 起始行 and 结束行&#xff09; 窗口计算范围的指定 需要使用rows 进行指定 计算行数 范围的确认&#xff1a; 默认情况下没有指定partition by 的字段&#xff0c;范围是全表&#xff…

Kafka 架构深入介绍 及搭建Filebeat+Kafka+ELK

目录 一 架构深入介绍 &#xff08;一&#xff09;Kafka 工作流程及文件存储机制 &#xff08;二&#xff09;数据可靠性保证 &#xff08;三&#xff09;数据一致性问题 &#xff08;四&#xff09;故障问题 &#xff08;五&#xff09;ack 应答机制 二 实…

蓝桥杯2024年第十五届省赛

E:宝石组合 根据给的公式化简后变为gcd(a,b,c)根据算数基本定理&#xff0c;推一下就可以了 然后我们对1到mx的树求约数&#xff0c;并记录约数的次数&#xff0c;我们选择一个最大的且次数大于等3的就是gcd int mx; vector<int> g[N]; vector<int> cnt[N]; int…

关于Cortex-M3单片机出现Fault故障,应该如何判断和解决

一、Fault故障的种类及检查思路 Cortex-M3单片机出现Fault故障可能是由于多种原因引起的&#xff0c;包括软件错误、硬件故障或者外部环境因素等。以下是一些常见的方法来判断和解决这些故障&#xff1a; 查看Fault类型&#xff1a;Cortex-M3处理器有多种Fault类型&#xff0c…

基于贝叶斯算法的机器学习在自动驾驶路径规划中的应用实例

目录 第一章 引言 第二章 数据准备 第三章 贝叶斯路径规划模型训练 第四章 路径规划预测 第五章 路径执行 第六章 实验结果分析 第一章 引言 自动驾驶技术的发展带来了自动驾驶车辆的出现&#xff0c;而路径规划作为自动驾驶车辆的关键功能之一&#xff0c;对于确定最佳行…

Android Dialog圆角设置无效的问题

一&#xff0c;参考 Android Dialog圆角设置无效的问题 https://blog.csdn.net/woshi_awei/article/details/99664527 Android自定义Dialog实现通用圆角对话框 https://cloud.tencent.com/developer/article/1740956 二&#xff0c;原因 Diallog的默认背景是白色&#xff0…

JVM之JVM栈的详细解析

Java 栈 Java 虚拟机栈&#xff1a;Java Virtual Machine Stacks&#xff0c;每个线程运行时所需要的内存 每个方法被执行时&#xff0c;都会在虚拟机栈中创建一个栈帧 stack frame&#xff08;一个方法一个栈帧&#xff09; Java 虚拟机规范允许 Java 栈的大小是动态的或者是…

【Go】 编码解码基础,encoding标准库:base64、binrary、json、xml、gob、hex、pem、csv

目录 base64 binary json xml CSV GOB HEX PEM 总结 在 Go 语言中&#xff0c;encoding 标准库提供了多种用于数据编码和解码的包&#xff0c;如 asn1、base64、binary、json、xml 等。下面我将分别介绍这些包的基本使用方法。 base64 encoding/base64 包用于处理 Ba…

标准版uni-app移动端页面添加/开发操作流程

页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的.vue文件或.nvue文件。 .vue页面和.nvue页面&#xff0c;均全平台支持&#xff0c;差异在于当uni-app发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&#xff0c;.nvue会使用原生进行渲染。…

centos开机自启的方式总结

centos管理服务的开机自启的方式有这些&#xff1a; 1. systemctl systemctl使用enable/disable来开机自启和禁用开机自启&#xff1a; systemctl enable sshd 开机自动的配置文件存储在/etc/systemd下。 2.chkconfig 这个命令是用于简化服务的管理&#xff0c;和systemct…