0

我正在尝试在 Android 应用程序的彩色图像上实现均值过滤器。当我在所选图像上应用滤镜时。

原图:

在此处输入图像描述 过滤后的图像 在此处输入图像描述

4

1 回答 1

2

在您从 读取颜色值的每个像素处pixels[index],但 index 变量是过滤后数组的索引,而不是原始图像。您应该在 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];
        }
于 2013-08-01T07:14:15.200 回答