Lit*_*ild 7 java processing multimedia image
好的,我正在使用Processing它允许我访问任何图像的像素int[].我现在想要做的是将图像转换为灰度.每个像素的结构如下所示:
...........PIXEL............
[red | green | blue | alpha]
<-8--><--8---><--8--><--8-->
Run Code Online (Sandbox Code Playgroud)
现在,我需要将哪些转换应用于单个RGB值以使图像成为灰度?
我的意思是,我添加/减少多少使图像灰度化?
我在这里找到了一些方法:http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
对于每个像素,红色,绿色和蓝色通道的值应为其平均值.像这样:
int red = pixel.R;
int green = pixel.G;
int blue = pixel.B;
pixel.R = pixel.G = pixel.B = (red + green + blue) / 3;
Run Code Online (Sandbox Code Playgroud)
因为在你的情况下像素颜色似乎存储在一个数组而不是属性中,你的代码最终可能看起来像:
int red = pixel[0];
int green = pixel[1];
int blue = pixel[2];
pixel[0] = pixel[1] = pixel[2] = (red + green + blue) / 3;
Run Code Online (Sandbox Code Playgroud)
一般的想法是,当你有一个灰度图像时,每个像素的颜色仅测量该点的光强度 - 我们感知的方式是每个颜色通道的强度平均值.
| 归档时间: |
|
| 查看次数: |
10782 次 |
| 最近记录: |