MIPI RAW和YUV常见图像格式的解析、格式转换和看图软件

设计初衷

在ISP的图像算法开发中,经常会涉及到YUV、RAW等格式的图像。例如,在YUV域,经常会涉及到I420、NV12和P010等数据格式之间的转换。在RAW域,又会经常涉及到MIPI RAW等数据的查看。目前,YUV的格式解析软件有开源的YUView,解析RAW格式的有LibRaw等。但是,算法开发中会经常用到图像的转换、看图等功能,所以还是自己写个软件更方便些。
根据使用习惯,软件应该能够实现下面的功能:
1.首先能够解析ISP中常用的格式,并且能够实现单个、批量格式转换
在这里插入图片描述
2.支持拖拽,方便快速看图
3.有类似Visual Studio中ImageView的功能,能够用鼠标滚轮移动、缩放图片,查看具体像素值
4.对于RAW图,具有简单的Black Level Subtraction、White Balance、Demosaic、Gamma等功能查看彩色图

软件的开发

平台:Win
开源库:QT-5.9.9、OpenCV-4.3.0和TinyXml-2.6.2
目前是只有Win版本,后期方便时再移植到Linux上去

首先,用PS给软件设计一个与符合身份的图标,然后取个名字,就先这样吧!
在这里插入图片描述
然后就是写软件的过程。。。。。。完成了是这样的

在这里插入图片描述
用起来是这样的。。。

文件拖拽
在这里插入图片描述
图片的查看
在这里插入图片描述
注:勾选自动保存,转换的结果(文件名相同,更改后缀)会保存在当前输入路径下。

更多的详见软件

软件的下载地址

https://download.csdn.net/download/FrankCai86/49192611

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是Mipi Raw10格式图像Raw10格式图像的C语言代码: ```c #include <stdio.h> #include <stdlib.h> #include <stdint.h> void mipi_to_raw10(const uint8_t* mipi_data, uint8_t* raw10_data, int width, int height) { int byte_count = width * 5 / 4; // 5 bytes for every 4 pixels int i, j; uint8_t* out_ptr = raw10_data; for (i = 0; i < height; i++) { const uint8_t* in_ptr = mipi_data + i * byte_count; uint16_t pixel1, pixel2, pixel3, pixel4; for (j = 0; j < width / 4; j++) { // Extract 4 pixels from 5 bytes pixel1 = (in_ptr[0] << 2) | (in_ptr[1] >> 6); pixel2 = ((in_ptr[1] & 0x3F) << 4) | (in_ptr[2] >> 4); pixel3 = ((in_ptr[2] & 0x0F) << 6) | (in_ptr[3] >> 2); pixel4 = ((in_ptr[3] & 0x03) << 8) | in_ptr[4]; // Convert 10-bit pixel to 16-bit pixel1 = pixel1 << 6; pixel2 = pixel2 << 6; pixel3 = pixel3 << 6; pixel4 = pixel4 << 6; // Write 16-bit pixels to output buffer *out_ptr++ = pixel1 & 0xFF; *out_ptr++ = (pixel1 >> 8) & 0xFF; *out_ptr++ = pixel2 & 0xFF; *out_ptr++ = (pixel2 >> 8) & 0xFF; *out_ptr++ = pixel3 & 0xFF; *out_ptr++ = (pixel3 >> 8) & 0xFF; *out_ptr++ = pixel4 & 0xFF; *out_ptr++ = (pixel4 >> 8) & 0xFF; in_ptr += 5; } } } ``` 该函数接受一个指向Mipi Raw10格式数据的指针和一个指向Raw10格式数据的指针,以及图像的宽度和高度。它将Mipi Raw10格式数据转换Raw10格式数据,并将结果写入到指定的输出缓冲区中。请注意,这个函数假定输入数据已经按字节对齐并且没有填充。如果输入数据与这些假设不符,则需要进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值