一张图片,由于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;
}
}