美文网首页
RGB 实用技巧

RGB 实用技巧

作者: iRonCheng | 来源:发表于2019-06-26 19:39 被阅读0次

    RGB,指图像上每个像素点的红、绿、蓝颜色分量。一般全彩的屏幕的每个像素点有四个通道,即R G B A, 一般用一个字节储存一个通道信息,每个通道有256的梯度。
    我们通过一定的算法,修改图像上相应像素点的RGB值,就能达到所需效果。


    01
    • 灰度算法

    彩色图片灰度化的作用:我们识别物体时,关键的因素是梯度信息(梯度:指相邻两个像素点的差异值),颜色这一分量多变,难以提供关键信息(所以全色盲的人能识别事物)。图片灰度化后,计算量能成倍减少,一般灰度就256个梯度,如果算上RGB色彩的话,那就是1600万以上梯度。

    如何将彩色图像转换为灰度?如果每个颜色像素由红色,绿色和蓝色的三重(R,G,B)强度描述,那么如何将其映射到给出灰度值的单个数字?

    因为人眼对RGB颜色的感知并不相同,所以转换的时候需要给予不同的权重。我们对绿色比其他颜色更敏感,所以绿色最重要。发光度的公式为 : 0.21 R + 0.72 G + 0.07 B.


    灰阶
    • 马赛克算法

    利用邻域的任意一点代替当前邻域所有像素点,定义领域的大小,能影响马赛克效果(即厚码、薄码)

    Mosaic
    • 美白算法

    每个像素点的RGB值,越接近255越白,越接近0越黑。如果加上脸部识别算法,在脸部除了五官的地方增加相应的分量值,就能使照片达到美白的效果。

    Bg
    • 泛洪算法

    类似画图软件的油桶功能,能在封闭区域内填充颜色。从你点击的那个像素点开始,检查该点的上下左右点,看需不需要涂色,接下来检查左点的上下左右,右点的上下左右,上点的上下左右,下点的上下左右,如此递归,如洪水一般,直至每一点都遇到不同的颜色才停止。

    泛洪填充算法有三种方式实现:四邻域、八邻域、基于扫描线

    四邻域 八邻域 基于扫描线

    拓展

    • 泊松融合算法(Poisson Blending)
      我们在融合两个图像时,就是把不同的图像的不同部分放在一起,形成一张新的图像。融合得越自然,算法就越好。
      orapple.jpg

    简易理解:
    如果要融合两座山峰,A山高比例为1:1:2,B山高比例为12:8:4,直接拼起来肯定会不自然。如果把其中B山峰生长的趋势记下来(梯度为3:2:1),然后在另一座山峰的融合处上按照此趋势“生长”出另一座山峰,就显得更加自然。


    直接融合 无缝融合

    泊松方程


    4.jpg

    (Open CV已经集合了所有已知图像方程,提供Api调用)


    iRon
    2019 06 27. 古井贡


    参考:
    图片处理之马赛克算法 .
    图像灰度化 .
    Three algorithms for converting color to grayscale .
    Scanline Flood Fill Algorithm with (or without) Tolerance in Objective-C .

    相关文章

      网友评论

          本文标题:RGB 实用技巧

          本文链接:https://www.haomeiwen.com/subject/cpuhcctx.html