admin管理员组

文章数量:1538098

关于 bayer 格式

bayer 是相机内部的原始图片, 一般后缀名为 raw。一般需要转换为其他格式才方便查看与存储。但不同厂商的摄像头出来的 bayer 也有一些差别,主要表现在 RGB 颜色值的排列顺序上的不同。需要注意的是,我们常说的 RGB 图片是每一个像素点都由 R、G、B 三个颜色值组成。bayer 的每一个点只有一种颜色,特别是绿色会更多一些,因为人眼对绿色更敏感。

编译与运行

下面讲解在广州创龙的 TL570x-EVM 上的交叉编译运行。如果是在 Ubuntu PC,下载源码下来直接 make 就可以编译出 bayer 程序了,十分方便。

  • 项目地址:https://github/jdthomas/bayer2rgb
  • 下载源码:git clone https://github/jdthomas/bayer2rgb.git

编译

  • 在已安装 SDK 的 PC 初始化编译环境:source ~/am5728/ti-processor-sdk-linux-am57xx-evm-03.01.00.06/linux-devkit/environment-setup
  • 编辑 Makefile,把 CC 配置为 arm 交叉编译器:CC=arm-linux-gnueabihf-gcc
  • 执行编译:make
  • 即可看到生成的 bayer2rgb 可执行程序,使用 file 命令可以查看其相关信息:file bayer2rgb

运行

  • 把可执行程序复制到 TL570x-EVM 板卡执行查看其参数选项:./bayer2rgb -h
  • 把从摄像头采集的 RAW 图片转换为方便打开的 tiff 格式:./bayer2rgb -i ./video.raw -o ./video.tiff -w 1920 -v 1080 -b 16 -f RGGB -t  # 注意这里 -f 格式需要与采集时指定的格式一致。转换出来的 tiff 图片使用 Windows 自带的图片查看工具即可打开。一般来说,摄像头采集出来的 RAW 图片,由于只有纯图片数据,缺乏文件头,图片查看软件无法获知其对应格式,直接打开会提示无效图片。所以这里转换时也专门加上了 -t 参数,给图片加上 tiff 文件头信息。

参数选项

usage: ./bayer2rgb

--input,-i input file

--output,-o output file

--width,-w image width (pixels)

--height,-v image height (pixels)

--bpp,-b bits per pixel

--first,-f first pixel color: RGGB, GBRG, GRBG, BGGR

--method,-m interpolation method: NEAREST, SIMPLE, BILINEAR, HQLINEAR, DOWNSAMPLE, EDGESENSE, VNG, AHD

--tiff,-t add a tiff header

--swap,-s if bpp == 16, swap byte order before conversion

--help,-h this helpful message

廖杰良 - 2019-02-23

 

本文标签: 图像格式转换工具RAWbayer2rgb