十一、SLAM学习笔记—— Cartographer & Cairo

10 篇文章 4 订阅

        在Cartographer_ros中,cartographer较多的用到了cairo库进行二维图像的渲染操作,尤其是将多张子图绘制在大地图的时候。 

Cairo's compositing operatorsicon-default.png?t=M276https://www.cairographics.org/operators/Cairo's compositing operators
Cairo's compositing operatorsicon-default.png?t=M276https://www.cairographics.org/operators/ 

CAIRO_OPERATOR_SOURCE

描述:直接覆盖,灰色部分属于背景。红色是原始图像,蓝色是新绘制的图像。上述的OPERATOR属于直接覆盖操作。

alpha_{dist} = alpah_{new} \\ color_{dist} = color_{new}

CAIRO_OPERATOR_OVER —— Cairo默认操作符

描述:图像按照透明度混合,这个是cairo默认的操作类型。效果如下所示:

数学原理如下所示:

aA + aB·(1−aA)(xaA + xaB·(1−aA))/aR

alpha_{dist} = alpha_{new} + alpha_{origin} * (1 - alpha_{new}) \\ color_{dist} = (color_{new} +color_{origin}*(1-alpha_{new})) / alpha_{dist} \\ 

合并写为像素之间的关系:

color_{dist} = \frac{(color_{new} +color_{origin}*(1-alpha_{new})) } {alpha_{new} + alpha_{origin} * (1 - alpha_{new}) } 

 从上述公式可以得出推论:

 1. 当新绘制的图像透明度为1的时候,alpha_dist  = 1, alpha_new = 1, 从而

color_dist = color_new

     此时,CAIRO_OPERATOR_OVER 退化为CAIRO_OPERATOR_SOURCE

 2. 当原图像透明度为1,新图像透明度为0.5时, alpha_dist = 1, 从而

color_dist = color_new + color_origin * 0.5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值