开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition
简介
本文针对官方例程中的第一个例程:single-acquisition做简单的讲解,并简单分析其中调用的arv_camera_new
,arv_camera_acquisition
,arv_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, //采集超时时间,单位µs
GError** 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_IMAGE
、ARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATA
或ARV_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_IMAGE
、ARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATA
或ARV_BUFFER_PAYLOAD_TYPE_MULTIPART
时使用
gint arv_buffer_get_image_height(ArvBuffer* buffer)
Available since: 0.4.0
开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition的更多相关文章
- Git---初入开源代码管理库的学习过程003
Git常用命令总结 上接<Git 初入开源代码管理库的学习过程>学了一周Git,基本有了个认识.每一位比我厉害的,都是大牛,网上找了几篇博客和教材(感谢你们),边学习边实践用了四天,写笔记 ...
- Android Fresco (Facebook开源的图片加载管理库)
Fresco是Facebook开源的一个图片加载和管理库. 这里是Fresco的GitHub网址. 同类型的开源库市面有非常多,比如Picasso, Universal Image Loader, G ...
- 值得学习的C语言开源项目和库
收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...
- C++的开源跨平台日志库glog学习研究(三)--杂项
在前面对glog分别做了两次学习,请看C++的开源跨平台日志库glog学习研究(一).C++的开源跨平台日志库glog学习研究(二)--宏的使用,这篇再做个扫尾工作,算是基本完成了. 编译期断言 动态 ...
- C++的开源跨平台日志库glog学习研究(二)--宏的使用
上一篇从整个工程上简单分析了glog,请看C++的开源跨平台日志库glog学习研究(一),这一篇对glog的实现代码入手,比如在其源码中以宏的使用最为广泛,接下来就先对各种宏的使用做一简单分析. 1. ...
- 59.Android开源项目及库 (转)
转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- Android开源项目及库搜集
TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...
- iOS -- 开源项目和库
TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...
- Android 开源项目及库汇总(2)
Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...
随机推荐
- 【Azure Redis 缓存】Azure Redis Cluster 在增加分片数时失败分析
问题描述 Azure Redis Cluster 在增加分片数时失败,错误消息为: ResponseBody: { "error": { "details": ...
- protocol buffer 知识整理(备份)
定义消息: 最简单的例子: 1 // 下面是a.proto文件的内容 2 syntax = "proto3"; //必须指明proto3,否则会被认为是proto2 3 ...
- 安卓插耳机也外放扬声器播放音频的java代码
最近遇到一个如何在耳机插入的情况下任然用扬声器播放音频的问题. 用搜索引擎找了一些网上的demo(案例) .发现按照他们的方法成功实现. 插入耳机的时候也可以选择使用扬声器播放音乐,来电铃声就是这么用 ...
- SSK:超级键盘模拟器,调用底层,可模拟所有按键
SSK - 吵架键盘模拟器 SuperSimulator of Keyboard 调用系统底层,能够模拟所有键盘操作! 本程序结合快Key(QuicKeys智能登录助手)一起使用,能够创造更多奇迹! ...
- PaddleOCR 服务化部署(基于PaddleHub Serving)
最近用到百度飞桨的 PaddleOCR,研究了一下PaddleOCR的服务化部署,简单记录一些部署过程和碰到的问题. 基础环境 paddlepaddle 2.5.2 python 3.7 paddle ...
- husky 7.0.4 git hooks 前端 commit 钩子 git转svn [已解决]
husky 7 的安装,注意下版本 第一步 安装 cnpm install husky@7.0.4 --save-dev 第二步 在package.json script加入 "prepar ...
- 动态less 解决 vue main.js
// 引入主题文件 // eslint-disable-next-line no-unused-expressions import('./theme/color/' + config.theme + ...
- 开发环境篇之HALCON数据结构
开发环境篇之HALCON基础 目录 基本数据分类 图标类数据 Image(图片) Pixel:像素 Channel:通道 Domain:域 图片操作 Region(区域) Region操作 XLD(轮 ...
- Dreamweaver基础教程:学习CSS
目录 CSS 简介 CSS 语法 Id 和 Class id 选择器 class 选择器 CSS 创建 外部样式表 内部样式表 内联样式 多重样式 多重样式优先级 背景(background) 背景颜 ...
- 在使用sudo apt-get -f install的时候,出现了更换介质的问题-依赖问题
这四个选项都选上,然后apt-get update 在修补依赖问题,apt-get -f install 就好了