【发布时间】:2013-08-01 06:54:51
【问题描述】:
我正在尝试对 Android 应用程序的彩色图像实施均值过滤器。当我在所选图像上应用滤镜时。
原图:
过滤后的图像
【问题讨论】:
标签: java android arrays bitmap
我正在尝试对 Android 应用程序的彩色图像实施均值过滤器。当我在所选图像上应用滤镜时。
原图:
过滤后的图像
【问题讨论】:
标签: java android arrays bitmap
您从pixels[index] 读取每个像素的颜色值,但索引变量是过滤后数组的索引,而不是原始图像。您应该在索引x+filterX+width*(y+filterY) 处读取像素数据,并注意图像的边缘。
更大的问题是红色、绿色和蓝色的总和永远不会重置为 0,这意味着它们将继续累积像素值。这应该可以解释变色。添加:
sumR = 0;
sumG = 0;
sumB = 0;
for (int i = 0; i < RArray.length; i++) {
sumR += RArray[i];
sumG += GArray[i];
sumB += BArray[i];
}
【讨论】: