如何做出半透明和闪光效果



 



    一开始看到这样的效果的时候,我感觉非常酷,等到搞明白原理之后,才发现原来很酷的效果可以通过很简单的代码实现,这就更酷了。



    首先,需要获得读取一些图片,最好是自然的图片,带点后现代风格的那种。




如何做出半透明和闪光效果_代码实现


     像这张,带有一种工厂颓废风格的图片,就很是适合。


     然后需要在图像中创建一个矩形。


     如果是直接创建的话,那么就应该是这样的效果:



    Rect rect( 0, 0, 200, 400);
    rectangle(src,rect,Scalar( 0, 0, 0));



如何做出半透明和闪光效果_代码实现_02


          


Rect rect( 0, 0, 200, 400);
    rectangle(src,rect,Scalar( 0, 0, 0), - 1);


写出这样则是填充的效果,写出这样还是真难看



如何做出半透明和闪光效果_代码实现_03


     但是写成这样,就可以得到半透明的效果。关键是融合了前景和背景的颜色。


Rect rect( 0, 0, 200, 400);
    Mat roi  = src(rect);
    roi  += CV_RGB( 90, 90, 90);


 



如何做出半透明和闪光效果_代码实现_04


而闪光效果,则多用于在视频当中。当有需要强调的图片出现的时候,则将全部图片或者某一区域变成半透明或者全白,在下一帧中恢复。则达到这样的效果。


记住


roi = src(rect);


roi += cv_rgb(90,90,90);


就是半透明,非常简单。