デッドピクセルのクラスターがある場合、現在のアプローチは役に立ちません。また、画面のテストに使用された画像によっては、スタック ピクセル (強度が 100% のピクセル) を有効なピクセルと誤って解釈し、周囲のピクセルを欠陥と解釈することもあります。
代わりに、データの全体的な平均 µ と分散 σ 2を計算し、データを正規分布として解釈します。68-95-99.7 ルールによれば、すべてのデータの 95% が [µ-2σ,µ+2σ] の区間にある必要があります。
サンプルを見て、これがデータに当てはまるかどうかを判断しましょう。
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");
}
これにより、デッド ピクセル (全ピクセルの 8%) が明らかになります。非常に高い強度のピクセルも追加したことに注意してください。これはおそらくスタックしています。
値 5000 のエントリ 0 はおそらく死んでいる
値が 1135 のエントリ 12 はおそらく死んでいる
ただし、このアプローチは画面が均等に照らされている場合にのみ機能するため、大きな欠点が 1 つあります。また、無地の白い画像で強度マップを記録した場合、スタック ピクセルは検出できません。もちろん、画面が完全に壊れているためにデータが散らばっている場合、このアプローチは役に立ちません。それ以外は簡単に実装できます。ローカル チェックを追加して、誤検知をフィルタリングすることもできます。
このアルゴリズムのランタイムは固定であることに注意してください3*n
。
(図はMwtoewsによって作成されました)