v4l2抓取rv1126图像

2024-05-30 16:20
文章标签 抓取 图像 v4l2 rv1126

本文主要是介绍v4l2抓取rv1126图像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0.准备工作

        本文是基于正点原子的rv1126开发板使用mx415摄像头对不同节点的图像进行抓取

1.数据流向

 图1

        mx415采集到的数据为原始的拜尔格式(也就是raw格式),我们需要通过isp进行图像的调节才符合视觉,其中isp和ispp是两个处理的模块,RKAiq是其调整时候需要用到的文件,如何指定见图4,经过isp和ispp两个模块处理后的数据不再是raw数据而是可以指定的(见图3),其数据输出到/dev/videox节点上了,不同的video节点对应了四个节点分别为rkispp_m_bypass,rkispp_scale0,rkispp_scale1,rkispp_scale2其对应关系如下图2,最后再把图片输出给rkmedia。

 图2

        上图中红色为板子cs0摄像头的对应的节点,紫色为摄像头插在cs1时候对应的节点。        

其中这四个节点也分别对应着/dev/media节点其中板子上cs0对应media的1、3,cs1对应2、4.

        当我们想查询可输出什么格式图像时候我们可以执行如下代码:

v4l2-ctl --list-formats-ext --device /dev/video30

图3

        最后我们来说一下如何指定iq文件,在我们执行以及编写好的文件如某个可执行文件test1的时候我们可以使用./test1 -a (iq文件路径)即 ./test1 -a /etc/iqfiles/,或者我们可以打开ispserver,即在命令框输入ispserver &让其后台运行即可,前者属于深红色的那条线即在代码直接指定了为什么使用路径,后者是橙红色的那条线即通过ispserver启动。但是也有一些注意事项:

1.不可同时指定路径并启动ispserver

2.当我们只插了一个摄像头的时候ispserver默认启动了cs0处的ispserver如果你把摄像头插在cs1则isp功能是无效的,除非插入两个摄像头。

  图4

        但是对于我们使用v4l2抓图我们使用ispserver的方法来使用isp,因为方法以指定iq文件其实是和驱动代码相配合,我们只是抓图没有代码这一说因此使用ispserver,所以根据我们的注意事项2我们应该吧摄像头插在cs1处合适。

        抓图命令,这里我们抓的是cs0的rkispp_by_pass节点下的图即/dev/video30这里我们要提前打开ispserver在后台运行即ispserver &。

v4l2-ctl -d  /dev/video30 \
--set-fmt-video=width=3840,height=2160,\
pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=30 \
--stream-to=/tmp/bypass0.raw \
--stream-count=1 \
--stream-poll

        这里第一行指定了从哪里抓图,set fmt video指定了抓图分辨率(该接口只可以全分辨率抓),pixelformat制定了抓图的格式即输出图片格式为NV12,mmap是内存映射不管,skip是跳过前面30帧因为前面ispserver可能未初始好,to是制定了抓取图片存放的位置与名称(由于前面以及指定输出为NV12格式因此,这里的raw只是名称没有实际意义),count说明抓取一张图片,最后poll开始抓图

        抓图成功之后使用adb命令从ubuntu把图片拉过来即

adb pull /tmp/bypass0.raw ./

        再打开查看

ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 bypass0.raw

这篇关于v4l2抓取rv1126图像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016515

相关文章

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(