Su enfoque actual no lo ayudará si tiene un grupo de píxeles muertos. También puede malinterpretar un píxel pegado (píxel con una intensidad del 100%) como un píxel válido y el píxel circundante como un defecto, según la imagen que se usó para probar la pantalla.
En su lugar, calcule el promedio general μ y la varianza σ de sus datos e interprete los datos como normal distributed. Según el 68-95-99.7 rule, el 95% de todos los datos debe estar en el intervalo [μ-2σ, μ + 2σ].
Vamos a echar un vistazo a la muestra y determinar si esto es cierto para sus datos:
var arr = "5000 3176 3207 3183 3212 3211 3197 3198 3183 3191 3193 3177 1135 3185 3176 3175 3184 3188 3179 3181 3181 3165 3184 3187 3183".split(" ");
var i = 0;
var avg = 0; // average/mean
var vri = 0; // variance
var sigma; // sqrt(vri)
for(i = 0; i < arr.length; ++i){
arr[i] = parseInt(arr[i]);
avg += arr[i];
}
avg /= arr.length;
for(i = 0; i < arr.length; ++i){
vri += (arr[i]-avg)*(arr[i]-avg);
}
vri /= (arr.length - 1);
sigma = Math.sqrt(vri);
for(i = 0; i < arr.length; ++i){
if(Math.abs(arr[i]-avg) > 2*sigma)
console.log("entry "+i+" with value "+arr[i]+" probably dead");
}
Esto dará lugar a los píxeles muertos (8% del total de píxeles) reveló. Tenga en cuenta que también añadí un píxel con una intensidad muy alta, lo que probablemente se ha quedado atascado:
entry 0 with value 5000 propably dead
entry 12 with value 1135 probably dead
Sin embargo, hay un inconveniente importante, ya que este enfoque sólo funcionará si la pantalla iluminada por igual. Tampoco se puede detectar el pixel atascado si grabó el mapa de intensidad con una imagen blanca normal. Y, por supuesto, si sus datos están dispersos porque la pantalla está completamente rota, este enfoque no lo ayudará. Aparte de eso, es fácil de implementar. También podría agregar un cheque local para filtrar falsos positivos.
Tenga en cuenta que este algoritmo tiene un tiempo de ejecución fijo de 3*n
.
(El diagram ha sido creado por Mwtoews)
@Jay: "[...] que detecta y cuenta los píxeles muertos de un mapa de intensidad". Supongo que tiene los datos necesarios. Cómo lo obtuvo y si es correcto está sujeto a otra pregunta, sin embargo, también puede interpretar esta pregunta como "cómo obtener campos cuyos valores están por debajo del promedio local". – Zeta
@Jay: Probablemente estés pensando en los píxeles del monitor; Creo que el OP está pensando en los píxeles del sensor (cámara digital, etc.) –