NVIDIA Jetson Nano 2GB 系列文章(9):调节 CSI 图像质量

news2025/2/7 20:20:21

NVIDIA英伟达中国

在本系列上一篇文章中,我们为大家展示了如何执行常见机器视觉应用。在本篇文章中,我们将带领大家调节 CSI 图像质量。

前面两篇文章在 Jetson Nano 2GB 上使用 CSI 摄像头做了几个实验,效果很不错,并且很容易上手。很快有用户反映,觉得摄像头拍到的图像质量似乎有点问题,包括可能有些噪点、色偏之类的问题,或者想处理白平衡、调整亮度/对比度/饱和度之类的问题,该如何解决?

本期重点就带着大家利用强大的 GStreamer 框架,调整一些设定值,来改变 CSI 摄像头截取图像的质量,主要包括 nvarguscamerasrc 与 videobalance 这两个元素,都提供可调整的参数,以下简单说明。

首先启动一个最基础的 CSI 摄像头调用代码,如下:

执行结果如下图:

nvarguscamerasrc 元素

接着在 Jetson Nano 2GB 上打开一个终端,利用 GStreamer 提供的 gst-inspect-1.0 指令去查询 CSI 摄像头可设定的参数有哪些。

指令后面的“nvarguscamerasrc”元素对应 CSI 设备,是 NVIDIA 提供 Argus 库的对应关键字。执行上述指令后会出现长达 146 行的列表,内容太多不一一说明,仅就以下部分进行测试:

wbmode : 白平衡影响照片的色温,可设定[0:9]的整数

tnr-mode 与 tnr-strength :调整时间降噪强度

首先选择 tnr-mode 选项:设值为[0:2]的整数

然后再选择 trn-strength 强调,从[-1:+1]之间的浮点数

ee-mode 与 ee-strength:调整边缘增强强度

首先选择 tnr-mode 选项:设值为[0:2]的整数

然后再选择 trn-strength 强调,从[-1:+1]之间的浮点数

saturation:饱和度,设值[0:2]之间的浮点数

以上是 nvarguscamerasrc 设定值的一部分,因此在 GStreamer 工作流里面,需要放在 nvarguscamerasrc 元素里。下面代码做以下的测试设定:

  • 白平衡:wbmode=3(白炽灯)
  • 时间降噪强度:tnr-mode=2(NoiseReduction_HighQuality),tnr-strength=1
  • 边缘强化强度:ee-mode=2(EdgeEnhancement_HighQuality),ee-strength=1
  • 饱和度:saturation=0.5

添加的代码在下方代码“粗体底线”的部分:

执行结果如下图:

这个输出结果与原图相比较,可以明显看到因为饱和度只取“0.5”,导致颜色明显变淡,边缘的部分则明显增强,至于噪点部分没有明显变化。

videobalance 元素

另外还有一个 videobalance 元素可以对图像质量进行调整,同样使用 gst-inspact-1.0 来检查 videobalance 里的参数,执行以下质量:

这部分设定值比较单纯,主要由 7 个设定值,其中与图像有关的以下部分:

下面代码做以下的测试设定,见于“粗体底线”部分:

  • 对比度 constrast(预设值为 1)设为 1.5
  • 亮度 brightness(预设值为 0)设为 0.2
  • 饱和度 saturation(预设值为 1)设为 2.0

添加的代码在下方代码“粗体底线”的部分:

执行结果如下图:

这里的饱和度改变较大,可以看出明显的差异。

以上是简单地透过调整这两个元素的部分参数所作的实验,实际的优化过程还需根据实际状况进行优化调整,特别是光线模式的选择,最好根据当时的状况修改。

想要了解关于“Jetson Nano 2GB”的更多信息,请戳以下链接:

New Jetson Nano 2GB Developer Kit​www.nvidia.cn/autonomous-machines/embedded-systems/jetson-nano/education-projects/​

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

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

相关文章

分布式系统架构设计之分布式通信机制

二、分布式通信机制:保障系统正常运行基石 在分布式系统中,各个组件之间的通信是保障系统正常运行的基石,直接影响到系统的性能、可扩展性以及整体的可维护性。接下来我们就一起看看通信在分布式系统中的重要性,以及一些常用的技…

java八股 redis

Redis篇-01-redis开篇_哔哩哔哩_bilibili 1.缓存穿透 2.缓存击穿 逻辑过期里的互斥锁是为了保证只有一个线程去缓存重建 3.缓存雪崩 4.双写一致性 4.1要求一致性(延迟双删/互斥锁) 延迟双删无法保证强一致性 那么前两步删缓和更新数据库哪个先呢&#xf…

kubernetes(k8s) Yaml 文件详解

YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读。 1、查看API 资源版本标签 kubectl api-versions 2、编写资源配置清单 kubectl create -f nginx-test.yaml --validatefalse 2.3 查看创建的po…

【Python可视化系列】一文教会你绘制美观的热力图(理论+源码)

一、问题 前文相关回顾: 【Python可视化系列】一文彻底教会你绘制美观的折线图(理论源码) 【Python可视化系列】一文教会你绘制美观的柱状图(理论源码) 【Python可视化系列】一文教会你绘制美观的直方图(理…

docker部署kafka zookeeper模式集群

单机模式链接:https://blog.csdn.net/wsdhla/article/details/133032238 kraft集群模式链接:部署Kafka_kafka 部署-CSDN博客 zookeeper选举机制举例: 目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5…

鸿蒙开发(二)- 鸿蒙DevEco开发环境搭建

上篇说到,鸿蒙开发目前势头旺盛,头部大厂正在如火如荼地进行着,华为也对外宣称已经跟多个厂商达成合作。目前看来,对于前端或客户端开发人员来说,掌握下鸿蒙开发还是有些必要性的。如果你之前是从事Android开发的&…

【计算机网络】—— 奈氏准则和香农定理

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 失真 - 信号的变化 ​编辑影像失真的因素: ​编辑信道带宽: 码间串扰…

通过 Bytebase API 做数据库 Schema 变更

Bytebase 是一款数据库 DevOps 和 CI/CD 工具,适用于开发人员、DBA 和平台工程团队。 它提供了一个直观的图形用户界面来管理数据库 Schema 变更。另一方面,一些团队可能希望将 Bytebase 集成到现有的内部 DevOps 研发平台中。这需要调用 Bytebase API。…

内存管理--bss data txt数据段与stm32的ZI-data RW-data RO-data Code数据段的关系

目录 前沿 1 数据在内存中的位置 1.1 堆栈在内存中的位置 1.2 全局变量和局部变量在内存中的位置 1.2.1 全局变量在内存中的位置 1.2.2 局部变量在内存中的位置 1.3 static变量在内存中的位置 1.4 malloc赋值的变量存放在内存中的位置 1.5 代码在内存中的位置 2 ZI-d…

udp广播的例子

以下是一个使用C语言描述广播发送和接收的简单示例&#xff1a; 发送端&#xff08;广播发送&#xff09;&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #inclu…

如何使用Docker将.Net6项目部署到Linux服务器(二)

目录 二 安装Redis 2.1 基本安装 2.1.1 下载Redis 2.1.2 解压并安装Redis 2.1.3 编译Redis 2.1.3 配置config文件 2.1.4 配置redis服务 2.1.5 关闭redis服务 2.2 Docker安装 2.2.1 拉取镜像 2.2.2 查看镜像 2.2.2 创建挂载目录 2.2.3 创建配置文件 2.2.4 创建容器…

几种串口扩展电路

一、IIC串口扩展电路 LCT200 是一款可以通过 I2C 接口通讯&#xff0c;拓展 2 路独立串口的通讯芯片&#xff0c;同时也支持通过 2 路串口读写 I2C 接口的数据。LCT200 的封装为 TSSOP-20。 主要功能&#xff1a;⚫ 通过对 I2C 接口读写实现拓展 2 路独立串口功能 ⚫ 通过读写…

Linux学习教程(第十八章 SELinux管理)

第十八章 SELinux管理 root 用户实在是一个超人&#xff0c;它在 Linux 系统当中就是无所不能的&#xff0c;而且读、写和执行权限对 root 用户完全没有作用。root 用户的存在极大地方便了 Linux 的管理&#xff0c;但是也造成了一定的安全隐患。 大家想象一下&#xff0c;如果…

LabVIEW与PID在温度测控系统中的应用

LabVIEW与PID在温度测控系统中的应用 本案例介绍LabVIEW在温度控制系统中的应用&#xff0c;特别是结合PID算法。项目使用abVIEW作为主要开发工具&#xff0c;配合NI PCI-7831R数据采集和控制设备&#xff0c;实现了高效的温度调节。 系统的核心在于LabVIEW的FPGA模块&#x…

编译opencv和opencv_contrib

1 下载源码 下载opencv源码https://github.com/opencv/opencv 下载opencv源码https://github.com/opencv/opencv_contrib 2 开始编译 构建需要下载ffmpeg的包&#xff0c;cmake构建时会自动下载&#xff0c;但是比较满&#xff0c;这里可以从下面链接直接下载 https://downloa…

怎么判断台灯是否护眼?分享适合考研使用的护眼台灯

虽然台灯是家家户户都会有的一盏照明设备&#xff0c;但是很多人并不是了解自家台灯是好是坏&#xff0c;能不能护眼等等。其实台灯是非常有讲究的&#xff0c;如果长期使用一些不合格、劣质的台灯&#xff0c;会让我们在不知不觉中造成视力损伤&#xff0c;从而导致近视。 也…

中后缀表达式

一、利用后缀表达式进行计算 1&#xff09;解题思路 如果当前字符串是操作数&#xff0c;就将该操作数入栈&#xff1b;如果当前字符串是操作符&#xff0c;就取栈顶的两个操作数进行运算&#xff08;注意&#xff1a;第一个出栈的数为计算时的右操作数&#xff1b;第二个出栈…

【深度学习-目标检测】03 - Faster R-CNN 论文学习与总结

论文地址&#xff1a;Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks 论文学习 1. 摘要与引言 研究背景与挑战&#xff1a;当前最先进的目标检测网络依赖于 区域提议&#xff08;Region Proposals&#xff09;来假设目标的位置&#xff0c…

计算机服务器中了halo勒索病毒如何解密,halo勒索病毒解密数据恢复

计算机技术的不断发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但也为网络安全埋下隐患&#xff0c;网络上的勒索病毒种类也在不断增加&#xff0c;给企业的数据安全带来了严重威胁。近日&#xff0c;云天数据恢复中心接到许多企业的求助&#xff0c;企业的计算…

HarmonyOS应用程序包-(上)

应用程序包-(上) 1.应用程序包概述 用户应用程序泛指运行在设备的操作系统之上&#xff0c;为用户提供特定服务的程序&#xff0c;简称“应用”。一个应用所对应的软件包文件&#xff0c;称为“应用程序包”。 HarmonyOS提供了应用程序包开发、安装、查询、更新、卸载的管理…