MATLAB如何实现RAW2RGB算法

一般说来,摄像头输出的RAW格式的数据,RAW格式的数据一般无法直接成图,需要经过插值算法将单个pixel的其他颜色分量还原出来,才能出现彩图。

本文中的插值算法是根据参考博客中的算法,用MATLAB实现的,用MATLAB的原因是学校里图像处理要么用MATLAB,要么用OPENCV,我学过一点MATLAB,所以就用这个来做。

参考博客:https://blog.csdn.net/qq_34207106/article/details/80387121

本文介绍的插值算法只适用于BGGR的排列。即如下:

我讲讲大概的思路,以邻近插值法为例,图像在MATLAB中可以看做是一个二维矩阵,大小就是摄像头的分辨率。首先你得读取这个RAW格式的图片,得用到下面这条语句。

这里我将某个路径下的RAW格式数据读入到了名image_raw_data的一维矩阵中,后面转成二维矩阵,方便运算,这个矩阵里面全是RAW数据,是无法出图的。而后创建R/G/B三个矩阵用来存放红,绿,蓝三种颜色分量。比如红色分量用如下语句

有了红色分量的矩阵,如何利用这个矩阵里的值赋给蓝色pixel的位置,恢复蓝色pixel中的红色分量。我是这么做的。

绿色pixel的红色分量同理,同样的,你还得恢复出红色pixel的绿色和蓝色分量等等工作,知道把R/G/B三个矩阵全部恢复出来。最后利用下面这条语句成图。

效果就是如下,我们使用测试模式下的color_bar的RAW数据。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值