开源相机管理库Aravis例程学习(五)——camera-api
简介
本文针对官方例程中的:03-camera-api做简单的讲解。并介绍其中调用的arv_camera_get_region
,arv_camera_get_pixel_format_as_string
,arv_camera_get_pixel_format
,ARV_PIXEL_FORMAT_BIT_PER_PIXEL
。
aravis版本:0.8.31
操作系统:ubuntu-20.04
gcc版本:9.4.0
例程代码
这段代码使用Aravis的API,获取相机的一些基本设置,如图像的宽度、高度和像素格式,主要操作步骤如下:
- 连接相机
- 获取图像宽度,高度,像素格式等信息
- 释放资源
/* SPDX-License-Identifier:Unlicense */ /* Aravis header */ #include <arv.h> /* Standard headers */ #include <stdlib.h> #include <stdio.h> /* * Connect to the first available camera, then display the current settings for image width and height, as well as the * pixel format, using the ArvCamera API. */ int main (int argc, char **argv) { ArvCamera *camera; GError *error = NULL; //连接相机 camera = arv_camera_new (NULL, &error); if (ARV_IS_CAMERA (camera)) { int width; int height; const char *pixel_format; int format_number; int bit_per_pixel; printf ("Found camera '%s'\n", arv_camera_get_model_name (camera, NULL)); //获取图像宽度和高度 if (!error) arv_camera_get_region (camera, NULL, NULL, &width, &height, &error); //获取图像像素格式 if (!error) pixel_format = arv_camera_get_pixel_format_as_string (camera, &error); if (!error) format_number = arv_camera_get_pixel_format (camera, &error); //获取图像像素位数 if (!error) bit_per_pixel = ARV_PIXEL_FORMAT_BIT_PER_PIXEL (format_number); if (error == NULL) { printf ("Width = %d\n", width); printf ("Height = %d\n", height); printf ("Pixel format = %s\n", pixel_format); printf ("Pixel format number = %d\n", format_number); printf ("Bit per pixel = %d\n", bit_per_pixel); } g_clear_object (&camera); } if (error != NULL) { /* En error happened, display the correspdonding message */ printf ("Error: %s\n", error->message); return EXIT_FAILURE; } return EXIT_SUCCESS; }
运行结果:
函数说明
arv_camera_get_region
简介:用于获取相机当前的感兴趣区域(ROI),此函数会将当前相机的ROI的位置坐标(x,y)和尺寸(width,height)通过指针返回,并记录错误信息。
void arv_camera_get_region ( ArvCamera* camera, gint* x, gint* y, gint* width, gint* height, GError** error )
其中:
[in]camera:相机对象
[out]x:ROI起始x坐标
[out]y:ROI起始y坐标
[out]width:ROI宽度
[out]height:ROI高度
[out]error:错误信息
Available since: 0.8.0
arv_camera_get_pixel_format_as_string
简介:从连接的相机中获取当前设置的像素格式,以字符串形式返回。
const char* arv_camera_get_pixel_format_as_string ( ArvCamera* camera GError** error )
Available since: 0.8.0
arv_camera_get_pixel_format
简介:从连接的相机中获取当前设置的像素格式,返回其编码。
ArvPixelFormat arv_camera_get_pixel_format( ArvCamera* camera GError** error )
Available since: 0.8.0
ARV_PIXEL_FORMAT_BIT_PER_PIXEL
简介:宏定义,用于获取pixel_format的第17位到第24位的值,其表示的是像素格式的Bpp(bits per pixel)。
#define ARV_PIXEL_FORMAT_BIT_PER_PIXEL(pixel_format) (((pixel_format) >> 16) & 0xff)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)