How to get the histogram's Std Dev
getRedHistogramStdDev();
function getRedHistogramStdDev() {
var channels = app.activeDocument.channels;
var red = channels[0].histogram;
alert(getStdDev(red));
}
function getStdDev(arry){
var length = arry.length;
var tarry = new Array(length);
var si = 0;
var s = 0;
for (var i = 0; i < arry.length; i += 1) {
if (arry[i] > 0) {
s += i;
si += arry[i];
}
}
var average = si / s;
for (var i = 0; i < length; i++) {
var dev = parseFloat(arry[i]) - parseFloat(average);
tarry = Math.pow(dev, 2);
}
var powSum = 0;
for (var j = 0; j < tarry.length; j++) {
if (tarry[j].toString() != "" || tarry[j].toString() != null) {
powSum = parseFloat(powSum) + parseFloat(tarry[j].toString());
}
}
return Math.sqrt(parseFloat(powSum) / parseFloat(length)).toFixed(2);
}
This is my code, but the result is inconsistent with the histogram's StdDev data.Please help me, thanks.
