首页 > 其他分享 >化腐朽为神奇!揭开ISP图像处理的神秘面纱,基于瑞芯微RK3568J工业平台!

化腐朽为神奇!揭开ISP图像处理的神秘面纱,基于瑞芯微RK3568J工业平台!

时间:2024-04-29 16:01:29浏览次数:26  
标签:RK3568J ISP 标定 瑞芯微 图像处理 RKISP2 图像 Tuner

ISP图像处理前后图像对比

化腐朽为神奇!经过ISP图像处理的图片前后对比是如此惊人!从下图中可以观察到,未经处理的原始图像偏绿且暗淡,而经ISP图像处理的图像能够清晰地还原现场真实的颜色细节!

 

图1 原始图像显示效果

 

图2 经ISP图像处理后显示效果
   ISP说明

 ISP简介

ISP(Image Signal Processor),即图像信号处理,主要作用是处理前端图像传感器输出的信号,主要功能有线性纠正、噪声消除、自动白平衡、自动曝光控制等,能在不同的光学条件下很好地还原现场细节。

ISP优势

 

由于不同传感器的差异以及拍摄环境的多样性,传感器输出的原始数据和人们预期的图像有一定差距,因此ISP就起到了相当重要的作用。例如:夜间光照不足、大雾、沙尘等,均会使采集的图像造成影响,存在成像模糊、噪声污染及曝光不均等问题,而经ISP图像处理的图像会有明显的优化。

 

RK3568J ISP功能介绍

RK3568J的ISP21模块支持标准的Sensor图像数据处理,包括自动白平衡,自动曝光,Demosaic,坏点矫正及镜头阴影矫正等基本功能,也支持HDR、去雾、降噪等高级处理功能。ISP21功能框图如下图所示。

 

 

图3 ISP21功能框图

 

RK3568J的ISP图像处理基于RKISP2.x Tuner工具对摄像头采集的图像进行标定得到IQ参数文件,通过IQ参数文件将摄像头采集的图像进行优化处理后发送至显示设备。

 

RKISP2.x Tuner提供了一套便于用户调试ISP参数的工具,用户可以在RKISP2.x Tuner中对所有ISP模块开展标定(Calibration)、调试(Tuning)等工作。

 

 

图4 RKISP2.x Tuner工具界面  

用户可以使用RKISP2.x Tuner提供的抓图工具(Capture Tool)来拍摄RAW图,在标定工具(Calibration Tool)中完成基础模块的标定工作,在RKISP2.x Tuner中连接设备,在线进行ISP参数调试。

 

 

 

图5 RKISP2.x Tuner调试流程图

RK3568J工业平台典型应用领域

 

图6 RK3568J工业平台典型应用领域
   

ISP图像处理开发案例

本章节主要介绍瑞芯微RK3568J的ISP图像处理开发案例,使用的硬件平台为:创龙科技TL3568-EVM工业评估板。
为了简化描述,正文仅摘录方案功能描述与测试结果,详细产品资料请扫描文末二维码下载。

功能说明

 

本案例基于RKISP2.x Tuner工具对摄像头采集的图像进行标定得到IQ参数文件,通过IQ参数文件将摄像头采集的图像进行优化处理后发送至显示设备。

 

硬件连接

 

评估板默认已支持HDMI OUT显示,请将评估板HDMI OUT接口连接至HDMI显示屏,使用FFC软排线将MIPI摄像头模块(型号为MCAM400)连接至评估板CAMERA接口,通过网线将评估板千兆网口ETH0 RGMII连接至路由器。硬件连接如下图所示。

 

 

图7

 

 

 

原始图像显示演示

 

评估板上电启动,执行如下命令将摄像头采集的图像实时显示至HDMI显示屏,该画面是未经过ISP图像处理的原始画面,如下图所示。按"Ctrl + C"可退出程序。

 

Target#/rockchip-test/camera/camera_rkisp_test.sh

 

图8

 

图9 原始图像显示效果

可以观察到,HDMI显示屏实时显示摄像头采集的原始图像偏绿色且暗淡。

 

RKISP2.x Tuner工具调试演示

 

以下主要介绍使用RKISP2.x Tuner工具进行标定处理。

 

打开RKISP2.x Tuner工具,导入原始图像后,进入CCM标定界面,然后设置饱和度,点击"Calibrate"开始标定。

 

 

图10

 

标定完成后,点击"Result"页面,可查看结果。

 

 

图11

 

可点击"Save"将新标定数据保存至IQ参数文件ov4689_RK-CMK-8M-2-v1_CK8401.json中。

 

备注:如需了解通过RKISP2.x Tuner工具创建及配置IQ参数文件的详细步骤,请参考我司提供的用户手册。

 

ISP图像处理效果演示

 

评估板上电启动,请将IQ参数文件ov4689_RK-CMK-8M-2-v1_CK8401.json拷贝至评估板文件系统"/etc/iqfiles/"目录下,然后重新启动评估板。

 

 

图12

 

进入评估板文件系统,执行如下命令,将摄像头采集的图像实时显示至HDMI显示屏,该画面是经ISP图像处理的显示效果,如下图所示。按"Ctrl + C"可退出程序。

 

Target#/rockchip-test/camera/camera_rkisp_test.sh

 

 

13

 

图14 经ISP图像处理后显示效果

可以观察到,摄像头实时采集的图像经过ISP图像处理后,显示效果相比原始图像有明显的优化。显示效果跟实际测试环境以及IQ参数文件配置有关,测试结果仅供参考。

 

标签:RK3568J,ISP,标定,瑞芯微,图像处理,RKISP2,图像,Tuner
From: https://www.cnblogs.com/Tronlong818/p/18165948

相关文章

  • 深度对比!瑞芯微RK3562J比RK3568J好在哪里?
    作为瑞芯微的明星产品——RK3568J,凭借其出色的性能及丰富的外设接口成为国内众多工业客户的最佳选择。 随着RK3568J的大规模应用,很多客户开始针对RK3568J的价格偏高、功耗偏高等问题提出了新的需求——寻找在性能和接口基本保持不变的情况下,能有效降低产品成本、功耗的方案。因......
  • mybatisplus乐观锁拦截器批量更新
    在MyBatis-Plus中使用乐观锁拦截器进行批量更新时,需要注意乐观锁的使用方式。乐观锁通常通过版本号机制实现,即在数据库表中增加一个版本号字段,每次更新时都会将版本号加一。下面是一个使用MyBatis-Plus的乐观锁拦截器处理批量更新的示例:首先,你需要自定义一个拦截器,实现Intercept......
  • mybatisplus乐观锁实现批量更新(在sql中实现)
    mybatisplus乐观锁实现批量更新在MyBatis-Plus中,乐观锁通常用于处理并发更新数据的问题。乐观锁实现批量更新时,可以使用版本号或者时间戳来保证数据的一致性。以下是使用乐观锁实现批量更新的示例代码:首先,在你的实体类中添加版本号字段:importcom.baomidou.mybatis......
  • mybatisplus乐观锁(单个任务)
    乐观锁:在关系数据库管理系统里,乐观并发控制(又名“乐观锁”,OptimisticConcurrencyControl,缩写“OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事务会先检查在该事务......
  • MyBatisPlus乐观锁批量更新
    MyBatis-Plus提供了乐观锁插件 OptimisticLockerInterceptor 用于处理乐观锁,但是对于批量更新操作,乐观锁插件默认不会生效。要实现批量更新时的乐观锁控制,你需要自定义批量更新的逻辑。以下是一个自定义批量更新并使用乐观锁的示例:@ServicepublicclassYourService{......
  • SpringBoot+MyBatisPlus报错 Invalid value type for attribute 'factoryBeanObjectTy
    依赖版本org.springframework.boot:spring-boot-starter-web:3.2.5com.baomidou:mybatis-plus-boot-starter:3.5.5错误Invalidvaluetypeforattribute'factoryBeanObjectType'问题原因:这个问题是由于依赖传递导致,在MyBatis起步依赖中的myBatis-spring版本过低,导致程......
  • CBM:Cooperative Branch Migration: A Mechanism for Flexible Control of DNA Strand
    作者引入了一种名为“协同分支迁移”(cooperativebranchmigration,CBM)的调控工具,通过调节分支迁移域的互补性来控制DNA链置换。引入的未配对域,后记为UD,作为分离互补区域的间隔物,不仅控制结合亲和力,而且控制链位移动力学。由于未配对域的存在,仅有I时,它很难将P从PS中取代。为了......
  • springboot+mybatisplus+dynicDatasource 从数据库表中查询数据源 动态添加
    1、pom依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/><!--lookuppa......
  • 代码$display("%h",14'bx0_1010)的输出结果是()
    选项:A、xxxaB、xxXaC、XXXaD、XXxa答案:B解析:  如果输出列表中表达式的值包含有不确定的值或者是高阻值,且在输出格式为十六进制的情况下,其结果输出遵循以下原则:(1)每四位二进制数为一组代表一位十六进制数;(2)如果表达式值相对应的某进制数的部分位为不定值,则该位进制数输......
  • mybatisplus分页中,模糊匹配一个字符串在列a或者列b下都可以筛选出的写法
    话不多说,直接上代码,and那句就对了LambdaQueryWrapper<类>wrapper=newLambdaQueryWrapper<类>().in(逻辑内容).like(正常逻辑内容).and(wrapperNew->wrapperNew.like(StringUtils.isNotEmpty(filter.getLocation()),......