标签:
color key在倒车显示功能上的至关重要性
随着经济的高速发展,汽车越来越多了,在城市里停车位越来越难找,停车位也越来越小,这时候倒车技术就显得非常重要了,左边是宝马,右边是奥迪,车位后面还可能有行人走的场景那就太可怕了,哪个都惹不起啊,这种情况下是不是有一个倒车影像是不是更好呢,答案当然是肯定的,可以看得更清楚,辅助倒车更安全,现在这个功能在小汽车上至少在半数以上都装了吧!
倒车影像是个好东西,那怎么实现,怎么弄出一个相当棒的倒车图像显示效果呢?倒车一般分两种,一种就是系统还没起来的情况下,一种就是系统已经完全起来,这两种情况在处理上是完全不一样的。
笔者在之前写过一篇boot关机倒车的,可以参看一下: http://blog.csdn.net/edsam49/article/details/17305853
有倒车图像的同时,在图像上还能比较准确的物体距离,也就是倒车图像上某个物体离车尾摄像头的距离,这个距离也只是一个参考的,受限于装车摄像头离地面的高度,以及摄像头在车尾上向下俯视的角度,但是有一个接近的距离警示性的线来标识一下是更好的。首先我们来看两张带警示线的图片A和B:
A图如下:
B图如下:
比较A图跟B图,我们仔细看看A和B是在同一个位置的,是笔者两种方案的结果,是不是会觉得B图比A图要更清晰一点。由于笔者是用手机对着机器拍的,效果还有一定衰减,实地效果对比差距更明显一点。首先A图的线有部分是不清晰的,图像有一部分颜色淡了很多,因为A图是采用两个物理图层通过alpha混合来实现的,透明度越大的话,警示线就越淡,图像更清晰,透明度越小当然是线清晰了图像看不清了,总之这种方法是有损的,从原理上分析就是有损的。
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
B机器也是使用两个物理图像,但是使用了alpha跟color key技术。是不是线也清晰,图像也清晰。也就是说强强联手,各取优点,何乐而不为呢!哈哈!
Colorkey技术是作用在两个图像叠加混合的时候,对特殊色做特殊过滤,符合条件的区域叫match区,在match区就全部使用另外一个图层的颜色值,不符合条件的区域就是非match区,非match区就是走普通的alpha混合,当然为了线看起来很清楚,我们可以把这个alpha值设置得大一些。Alpha值越大就是越不透明。
在此我们讨论的都是基于关机倒车的,就是系统还没起来的情况下。系统起来了倒车处理起来是更方便的,至少在surface view之间的图层叠加都是软算法,处理起来是更方便的,在此不做讨论。
我们下面来看看三星6410跟全志A10上的几张原理性的图就一目了然了。
怎么使用color key呢?各个平台大同小异,原理都差不多。参看代码:
_disp_colorkey_t ckt; __disp_color_t ck_max; __disp_color_t ck_min; ck_min.alpha =0xf0; ck_min.red = 0x00; ck_min.green = 0x00; //纯黑色 ck_min.blue = 0x00; ck_max.alpha =0xf0; ck_max.red = 0x00; ck_max.green = 0x00; ck_max.blue = 0x00; ckt.ck_min= ck_min; ckt.ck_max= ck_max; ckt.red_match_rule = 2;//0/1:always match; 2:match if min<=color<=max; 3:match if color>max or color<min ckt.green_match_rule = 2; ckt.blue_match_rule = 2;
一点点的进步都不容易,为了让用户得到一个更好的效果,程序员绞尽脑汁,加班加点,在所不惜
努力【让每一位车主出入平安】,加油!
标签:
原文地址:http://blog.csdn.net/edsam49/article/details/50850836