阿里java笔试题像素处理问题

一张图片,由于Bug原因会随机生成很多条纹,怎么设计算法去调整它的清晰度。

/** @author:micro_hz 2015年8月23日 */


//图片处理笔试题
/* * 加载的后得到的数组代表每个像素点的RGB值,因为bug是随机生成的条纹 * 我们可以遍历数组每个值,寻找出与之前加载的像素的值不同的像素点 * 并将该值修改成两次加载的最大值 */
public class AliTest {
    //设置一个累计变化次数的数组,保存每个像素点的变化次数
    public static int[] loadNumber;
    //设置一个前一次加载的像素数组
    public static int[] fronArray;
    //处理图像的函数
    public static int[] dealBugOfImage()
    {
        int[] array;
        //初始化数组
        loadNumber = new int[array.length];
        fronArray = new int[array.length];
        //使用接口实现方法
        array = loadImage("imageName");
        //遍历数组
        for (int i = 0; i < array.length; i++) {
            //找出变化的值并累加
            if(AliTest.fronArray[i] != array[i])
            {
                loadNumber[i] ++;
            }
            //因为第一次加载很可能不是黑色,所以loadNumber为0或则1都没bug
            if(loadNumber[i] != 1 || loadNumber[i] != 0)
            {
                /* * 处理bug的像素点 * 加载两次,选出两个的较大值 */
                int p1,p2;
                for (int j = 0; j < 2; j++) {
                    int[] temp = loadImage("imageName");
                    if(j == 0) p1 = temp[j];
                    else p2 = temp[j];
                }
                /* * 使用接口实现获得两个像素值最大值 */
                array[i] = getMaxPiexl(p1,p2);
            }
        }
        return array;
    }
}

你可能感兴趣的:(java,阿里,图像处理)