Warning: session_start(): open(/var/lib/php/sessions/sess_rrevftrf0n1j6cq9lg5t02tm93, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// Speed making histogram from BWImage: ~1 GPixels/s
// Time to get median brightness: ~1us
sclass BWImageHistogram {
IBWImage image; // optional
int[] data; // pixel count for each brightness from 0 to 255
int nPixels; // sum of pixel count
int medianBrightness = -1;
int medianSum;
*(BufferedImage image) {
this(BWImage(image));
}
*(BWImage *image) {
nPixels = area(image);
data = bwImageHistogramArray(image);
}
toString { ret "BWImageHistogram of " + nPixels(nPixels)
+ (image == null ? "" : appendBracketed(str_px(image))); }
int[] getArray() { ret data; }
int medianSumTarget() { ret (nPixels+1)/2; }
int medianBrightness() {
if (medianBrightness < 0) {
int threshold = medianSumTarget(), sum = 0;
for i to 256: {
sum += data[i];
if (sum > threshold) {
medianBrightness = i;
medianSum = sum;
break;
}
}
}
ret medianBrightness;
}
// get pixel count for brightness
int get(int brightness) { ret data[brightness]; }
}