Warning: session_start(): open(/var/lib/php/sessions/sess_6d2km06tv0igdcbtm3m498u5fo, 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
// A is the user object associated with each mask (aka a "label")
sclass G22MasksHolder {
record noeq Mask(Image2B image, A label) {
}
settable WidthAndHeight maskSize;
new L masks;
new Set labels;
// default mask size
{ maskSize(16); }
selfType maskSize(int size) {
ret maskSize(widthAndHeight(size));
}
Image2B regionToMaskImage(IImageRegion region) {
ret toImage2B(scaledIBinaryImage(maskSize, regionToIBinaryImage(region)));
}
void addRegion(IImageRegion region, A label) {
masks.add(new Mask(regionToMaskImage(region), label));
ghost_cache = null;
certainty_cache = null;
labels.add(label);
}
L maskImages() {
ret map(masks, mask -> mask.image);
}
BufferedImage masksSquare() {
ret mergeBufferedImagesAsSquare(allToBufferedImage(maskImages()));
}
toString {
ret renderVars(shortClassName(this),
+maskSize,
masks := n2(masks),
+certainty());
}
simplyCached FloatBWImage ghost() {
ret preciseAverageOfBinaryImages(maskImages());
}
simplyCached double certainty() {
ret preciseCertaintyImage(ghost()).averageBrightness();
}
}