b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

灰度图像数据量 Android滤镜效果实现及原理分析

电脑杂谈  发布时间:2018-02-19 11:04:38  来源:网络整理

灰度图像数据量_图像处理灰度_灰度图像是什么

原标题:Android滤镜效果实现及原理分析

摘要: Android在处理图片时,最常使用到的数据结构是位图(Bitmap),它包含了一张图片所有的数据。整个图片都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而颜色值——ARGB,分别对应着透明度、红、绿、蓝这四个通道分量,他们共同决定了每个像素点显示的颜色。

Android在处理图片时,最常使用到的数据结构是位图(Bitmap),它包含了一张图片所有的数据。整个图片都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。灰度图像数据量而颜色值——ARGB,分别对应着透明度、红、绿、蓝这四个通道分量,他们共同决定了每个像素点显示的颜色。下图是ARGB的模型图。

色彩矩阵分析

在Android中,系统使用一个颜色矩阵-ColorMatrix来处理图像的色彩效果。对于图像的每个像素点,都有一个颜色分量矩阵用来保存颜色的RGBA值(下图矩阵C),Android中的颜色矩阵是一个 4×5 的数字矩阵,它用来对图片的色彩进行处理(下图矩阵A)。

在Android系统中,如果想要改变一张图像的色彩显示效果,可以使用矩阵的乘法运算来修改颜色分量矩阵的值。上面矩阵A就是一个 4×5 的颜色矩阵。在Android中,它会以一维数组的形式来存储[a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t],而C则是一个颜色矩阵分量。在处理图像时,使用矩阵乘法运算AC来处理颜色分量矩阵,如下:

利用线性代数知识可以得到如下等式:

R1 = aR + bG + cB + dA + e;G1 = fR + gG + hB + iA + j;B1 = kR + lG + mB + nA + o;A1 = pR + qG + rB + sA + t;

从上面的等式可以发现:

第一行的 abcde 用来决定新的颜色值中的R——红色

第二行的 fghij 用来决定新的颜色值中的G——绿色

第三行的 klmno 用来决定新的颜色值中的B——蓝色

第四行的 pqrst 用来决定新的颜色值中的A——透明度

矩阵A中第五列——ejot 值分别用来决定每个分量中的 offset ,即偏移量 这样一说明,大家对这个公司就明白了。

初始颜色矩阵

接下来,我们重新看一下矩阵变换的计算公式,以R分量为例。

R1 = aR + bG + cB + dA + e;

如果令 a=1,b、c、d、e都等于0,则有 R1=R 。同理对第二、三、四、行进行操作,可以构造出一个矩阵,如下:

把这个矩阵代入公式 R=AC,根据矩阵乘法运算法则,可得R1=R,G1=G,B1=B,A1=A。即不会对原有颜色进行任何修改,所以这个矩阵通常被用来作为初始颜色矩阵。

改变颜色值

如果想要改变颜色值的时候,通常有两种方法:

改变颜色的 offset(偏移量)的值;

改变对应 RGBA 值的系数。

1.改变偏移量

从前面的分析中可知,改变颜色的偏移量就是改变颜色矩阵的第五列的值,其他保持初始矩阵的值即可。如下示例:

上面的操作中改变了 R、G 对应的颜色偏移量,那么结果就是图像的红色和绿色分量增加了100,即整体色调偏黄显示。

其中,左边为原图,右边为改变 偏移量后的效果。

2.改变颜色系数

假如我们队颜色矩阵做如下操作。

改变 G 分量对应的系数 g 的值,增加到2倍,这样在矩阵运算后,图像会整体色调偏绿显示。

通过前面的分析,我们知道调整颜色矩阵可以改变图像的色彩效果,图像的色彩处理很大程度上就是在寻找处理图像的颜色矩阵。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-84905-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...