码迷,mamicode.com
首页 > 其他好文 > 详细

color key在倒车显示功能上的至关重要性

时间:2016-03-11 12:22:52      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

 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;

      做的图是黑色的底,32bit的,黑色部分的RGB都是0,所以我们就过滤掉它,存在0的部分就直接使用了倒车视频的图像的RGB值,所以这样效果是很不错的。

    一点点的进步都不容易,为了让用户得到一个更好的效果,程序员绞尽脑汁,加班加点,在所不惜技术分享技术分享技术分享

      努力【让每一位车主出入平安】,加油!


color key在倒车显示功能上的至关重要性

标签:

原文地址:http://blog.csdn.net/edsam49/article/details/50850836

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!