Zynq UltraScale+ MPSoC智能视频平台4:恢复相机彩色数据

  Bayer格式是相机中常用的一种图像生成格式,为伊士曼柯达公司的布莱斯·拜尔发明,使用三色滤光片感光单元分成RGB三种,每个感光单元输出一个像素,接收端在接收到这些像素后可以使用相邻像素信息恢复出完整的RGB图像。人眼对于绿色光敏感,所以绿色滤光片的数量被设置成红色或蓝色的两倍,占所有像素数的50%,红色和蓝色占比各为25%。根据感光单元的排布方式,可以分为以下四种输出格式:GB、GR、BG和BR,两个字母代表第一行起始的两个像素属于RGB中的哪一个颜色。

  Vivado中有相应解析Bayer数据的IP核:Sensor Demosaic。可以将8bit的原始图像转换为24bit的RGB图像。IP核的使用比较简单,因为使用了标准的AXI4协议,所以端口的连接非常容易,其中Lite总线用于Arm控制FPGA寄存器,Stream用于传输图像数据。

  编译生成bit后,导出xda文件,利用xda文件生成Vitis Platform,新建Application,配置Sensor Demosaic和VDMA。查看相机手册,在Full模式下输出的Bayer格式是RG。查看Sensor Demosaic手册对应RG模式需要将phase设置成0。

	XV_demosaic_Config  *demosaic_Config;
	XV_demosaic demosaic;
	demosaic_Config = XV_demosaic_LookupConfig(XPAR_V_DEMOSAIC_0_DEVICE_ID);
	XV_demosaic_CfgInitialize(&demosaic, demosaic_Config, demosaic_Config->BaseAddress);
	XV_demosaic_Set_HwReg_width(&demosaic, Width);
	XV_demosaic_Set_HwReg_height(&demosaic, Height);
	XV_demosaic_Set_HwReg_bayer_phase(&demosaic, 0);
	XV_demosaic_EnableAutoRestart(&demosaic);
	XV_demosaic_Start(&demosaic);

  按照之前讲的方式从DDR中导出图像数据,用ImageJ的RGB模式打开,结果。。。颜色并不对,正确的色卡颜色如左图,解析出的RGB图像却是右图这样,很诧异,明明已经按照手册的说明设置了相应的寄存器,不知道是哪出了问题,继续研究这个IP核又需要一定的时间,所以,干脆自己动手写一个!

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值