阿里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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值