0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ArmSom--摄像头开发指南(二)

ARMSOM 2023-11-06 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一. 简介

RK3588从入门到精通

开发板:ArmSoM-W3

Kernel:5.10.160

OS:Debian11

上篇文档介绍了rockchip平台怎么配置MIPI-CSI的通路,本⽂主要介绍在Rockchip平台下Camera相关测试命令

二. 摄像头连接

ArmSoM-W3开发板与imx415连接图如下:

wKgZomVITeKABfqrAAgn30_F2bg515.pngw3-camera-hardware

注意

排线的金属引脚朝向板子

三. 使用摄像头

连接摄像头模块并上电后,可查看开机日志。

wKgZomVIXVCALdplAACZ1x4sHoI462.png

如果没有报错,那表明模块在正常运行,在Linux系统中,你可以使用多种方法来访问和利用该摄像头设备。

3.1 使用命令行工具

media-ctl 和 v4l2-ctl 是在Linux环境下用于配置和管理视频和多媒体设备的命令行工具。它们通常与V4L2(Video for Linux 2)子系统一起使用,用于管理摄像头、视频采集卡、显示设备和其他多媒体硬件的设置和参数。

media-ctl工具的操作是通过/dev/medio0等media 设备,它管理的是Media的拓扑结构中各个节点的 format、大小、 链接。 v4l2-ctl工具则是针对/dev/video0,/dev/video1等 video设备,它在video设备上进行set_fmt、 reqbuf、qbuf、dqbuf、stream_on、stream_off 等一系列操作。

n为4的倍数(0,1,2,3…) /dev/videon+0:视频输出 SP主通道 /dev/videon+1:视频输出 MP自身通道 /dev/videon+2:3A统计 /dev/videon+3:3A参数设置

3.1.1 显示拓扑结构

使用以下命令可以显示拓扑结构:

media-ctl -p -d /dev/media0

主要关注的是有没有找到Sensor的Entity。如果没有找到Sensor的Entity,说明Sensor注册有问题。

开发板上接上摄像头后可以看到如下的输出:

wKgaomVIXW2AEXb5AACISAOFQg0281.png

3.2.2 查看摄像头信息

使用命令列出所有摄像头设备:

wKgaomVIXX2AaRE0AACFOxrdQRk945.png

其中/dev/video11就是这个摄像头的设备。

查看设备的预览支持格式:

wKgZomVIXYmAQ8jOAACN_AFZZ-Y911.png

查看设备的所有信息:

wKgZomVIXZ6ANiM6AAC8vtHZed0051.png

3.2.3 显示图像

使用v4l2-ctl抓一帧图片:

wKgaomVIXayAfNqkAACfbZ14DMY217.png

参数说明:

-d: 摄像头对应设备文件 --set-fmt-video:指定了宽高及pxielformat(用FourCC表示)。NV12即用FourCC表示的pixelformat --stream-mmap:指定buffer的类型为mmap,即由kernel分配的物理连续的或经过iommu映射的buffer --stream-to:指定帧数据保存的文件路径 --stream-skip:指定丢弃(不保存到文件)前3帧 --stream-count:指定抓取的帧数,不包括--stream-skip丢弃的数量

抓取的图片使用adb工具拷贝到Windows下用7YUV工具打开,也可以用ffplay命令打开

ffplay是FFmpeg提供的一个极为简单的音视频媒体播放器(由ffmpeg库和SDL库开发),可以用于音视频播放、可视化分析 ,提供音视频显示和播放相关的图像信息、音频的波形等信息,也可以用作FFmpeg API的测试工具使用。

使用 ffplay 非常简单,只需在终端中运行以下命令来播放媒体文件:

ffplay /data/4k_nv12.yuv -f rawvideo -pixel_format nv12 -video_size 3840x2160

3.2.3 显示视频

使用v4l2可以录制视频:

wKgZomVIXciAQu_qAAAvRBV1X0E271.png

使用ffplay播放:

ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 out.yuv

3.3 使用多媒体框架应用程序

GStreamer:GStreamer是一种多媒体框架,你可以使用它来构建自定义的多媒体应用程序,捕获摄像头视频,进行处理和展示。

你可以使用以下GStreamer管道捕获视频:

gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! videoconvert ! autovideosink

1. v4l2src:从 /dev/video11 捕获视频数据。

2. video/x-raw:指定输出数据格式为原始视频,format 参数设置为 NV12,width 设置为 3840,height 设置为 2160,framerate 设置为 30fps。

3. videoconvert:执行格式转换,确保输出数据适用于后续的元素。

4. autovideosink:自动选择适当的视频输出插件,将视频显示在屏幕上。

显示如下:

wKgZomVITueAedvsABvs2e5x2TI333.pngcamera-screenshot

注意:显示器的分辨率是1920x1080,摄像头的分辨率是3840x2160,导致如左上角画面显示不全,双击边框可以得到分辨率是1920x1080的画面。

下面有一个简单的Python示例,用于创建一个GStreamer管道并启动捕获视频可供参考:

wKgZomVIXdyAXxG5AADG-aKWH6w066.png

3.4.自定义应用程序开发

特定的定制功能,一般是使用编程语言(如C++或Python)开发自己的摄像头应用程序

总的来说,应用程序通过API接口采集视频数据大致分为五个步骤:

首先,打开视频设备文件,进行视频采集的参数初始化,设置视频图像的采集窗口、采集的点阵大小和格式;

其次,申请若干视频采集的帧缓冲区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据;

第三,将申请到的帧缓冲区在视频采集输入队列排队,并启动视频采集;

第四,驱动开始视频数据的采集,应用程序从视频采集输出队列取出帧缓冲区,处理完后,将帧缓冲区重新放入视频采集输入队列,循环往复采集连续的视频数据;

第五,停止视频采集。

四. 结语

根据需求,选择最适合的方法来访问和使用摄像头设备,每个具体型号的摄像头可能有其独特的设置和要求,各个系统下的使用摄像头的方法也有很多,如果你有疑问或者需要帮助,可以在ArmSom论坛提出问题,与其他开发者分享经验和获取支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 摄像头
    +关注

    关注

    61

    文章

    5116

    浏览量

    103503
  • 开发板
    +关注

    关注

    26

    文章

    6423

    浏览量

    120920
  • RK3588
    +关注

    关注

    8

    文章

    588

    浏览量

    7558
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    摄像头可靠性EMC设计优化

    更好解决摄像头EMC问题。摄像头工作原理摄像头模组通过镜头(LENS)将光学图像投射到图像传感器(Sensor)表面,转换为电信号后经过A/D(模数转换)变为数字
    的头像 发表于 04-07 11:34 154次阅读
    <b class='flag-5'>摄像头</b>可靠性EMC设计优化

    监控摄像头FCC认证办理指南

    监控摄像头出口美国市场,必须办理FCC认证。FCC认证是美国联邦通信委员会对电子电气产品的强制性准入要求,未通过认证的产品将面临海关扣押、市场禁售等风险。以下为您详细梳理监控摄像头FCC认证的完整办理流程。
    的头像 发表于 03-10 17:38 973次阅读
    监控<b class='flag-5'>摄像头</b>FCC认证办理<b class='flag-5'>指南</b>

    ESP32-S3在初始化摄像头时检测到摄像头模组型号不被支持

    、供电不足或ESP32-S3引脚配置错误。 、分步解决方案 1. 第一步:确认摄像头模组型号(关键) ESP32-S3官方驱动仅原生支持 OV2640(200万像素)和 OV5640(500万像素
    发表于 02-11 06:38

    【正点原子STM32N647开发板试用】--摄像头屏显

    板原理图如下 这里使用IMX335 mipi接口摄像头模块,500W像素,查阅其规格参数如下: 将摄像头模组插到开发板上,准备好硬件如下 .摄像头
    发表于 01-25 14:51

    自动驾驶既然有双目摄像头了,为什么还要三目摄像头

    [首发于智驾最前沿微信公众号]在自动驾驶领域,纯视觉方案一直受到不少人的认可。双目摄像头由于模拟了人眼的工作方式,能够通过视差计算还原三维信息,在距离判断和空间感知上具有天然优势,因此被广泛应用于纯
    的头像 发表于 12-09 08:59 1270次阅读
    自动驾驶既然有双目<b class='flag-5'>摄像头</b>了,为什么还要三目<b class='flag-5'>摄像头</b>?

    实战指南:用摄像头模块实现多场景智能拍摄全流程!

    想通过摄像头模块实现多场景智能拍摄?本指南为你提供全流程实战指引。从前期准备、模块集成,到多场景拍摄测试与优化,每一步都结合实际操作细节展开,让你清晰掌握摄像头模块在不同场景(如安防监控、工业检测
    的头像 发表于 11-21 17:59 427次阅读
    实战<b class='flag-5'>指南</b>:用<b class='flag-5'>摄像头</b>模块实现多场景智能拍摄全流程!

    多场景智能拍摄实战:摄像头模块集成与调试指南

    摄像头模块集成是实现多场景智能拍摄的基础,而调试则是保障系统稳定的关键。本指南聚焦实战,详细讲解摄像头模块的硬件集成方法与多场景调试技巧,包括常见故障排查、性能优化方案等,让你在实战中快速搭建稳定
    的头像 发表于 11-21 17:58 593次阅读
    多场景智能拍摄实战:<b class='flag-5'>摄像头</b>模块集成与调试<b class='flag-5'>指南</b>!

    低成本低功耗物联网摄像头设计指南:硬件优化实用技巧!

    。 今天以Air780EPM为例,一起来聊聊摄像头硬件设计相关内容,软件开发方面不作深入探讨。   一、硬件支持说明 1.1 摄像头模块特性 1)接口类型: Air780EPM支持SPI/I2C接口
    的头像 发表于 09-19 19:19 683次阅读
    低成本低功耗物联网<b class='flag-5'>摄像头</b>设计<b class='flag-5'>指南</b>:硬件优化实用技巧!

    创世SD NAND贴片卡:智能摄像头存储难题的完美解决方案 #人工智能 #智能摄像头 #摄像头

    摄像头
    深圳市雷龙发展有限公司
    发布于 :2025年08月05日 11:17:13

    红外摄像头模组是什么?科技时代的眼睛

    在现代科技迅速发展的背景下,红外摄像头模组逐渐成为各类智能设备中的重要组成部分。无论是在安防监控、智能家居还是汽车领域,红外摄像头模组以其独特的功能和优越的性能,正在改变我们的生活方式。本文将
    的头像 发表于 07-31 10:07 1325次阅读
    红外<b class='flag-5'>摄像头</b>模组是什么?科技时代的眼睛

    【EASY EAI Orin Nano开发板试用体验】--USB摄像头使用

    本篇讲述USB摄像头接入开发板使用。准备200W像素/30FPS摄像头,接入开发板上层USB口(建议),如下 一.USB摄像头接入管理 1.
    发表于 07-13 18:21

    【Milk-V Duo S 开发板免费体验】4 - OV5647 摄像头摄像头测试

    DuoS开发板的/mnt/system/usr/bin/目录下提供了几个测试程序,其中sample_sensor_test就是用于摄像头测试的。 要运行这个程序,需要先修改/mnt/data/下
    发表于 07-08 21:26

    庐山派K230可以直接使用usb摄像头吗,可以的话摄像头有啥要求吗?

    庐山派K230可以直接使用usb摄像头吗,可以的话摄像头有啥要求吗
    发表于 06-24 07:07

    如何使用Banana Pi BPI-M7,BPI-M5 Pro 瑞芯微RK3588,RK3576芯片摄像头功能

    “sync” 命令,确保所有数据已写入磁盘,再拔掉电源或关机。 验证 ArmSoM camera-module1 是否启用 使能 armsom-camera-module1 设备树插件之后重新启动板卡,摄像头
    发表于 05-30 17:52

    基于RK3576开发板的网络摄像头方案

    本地RTSP拉流的操作指南,并详细说明了代码组成、调用关系及开发指南,包括CMakeLists.txt文件解析和build.sh编译脚本的使用。整体方案旨在帮助用户快速上手并实现四路MIPI-CSI摄像头的流媒体输出。
    的头像 发表于 05-12 17:54 1226次阅读
    基于RK3576<b class='flag-5'>开发</b>板的网络<b class='flag-5'>摄像头</b>方案