Warning: session_start(): open(/var/lib/php/sessions/sess_2bh6krcddv064rit0bhqkh7mbu, 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
asclass DynWebCamAnalyzer > DynImageSurfaceAndEnabled {
switchable bool overlay;
transient ReliableSingleThread rstUpdateImage = dm_rst(this, r updateImage);
transient long analysisTime = -1; // ns for analysis
transient S info;
transient JLabel lblInfo;
transient L overlays;
transient BufferedImage inputImage;
transient int w, h; // will be set to width & height of inputImage
transient bool analyzing;
transient S tempInfo;
start {
set zoomToWindowOnSetImage;
dm_doEvery(100, rstUpdateImage);
}
afterVisualize {
imageSurface_pixelated(imageSurface);
containerAddFirst(buttons,
lblInfo = dm_label info(),
dm_checkBox('overlay));
}
void updateImage enter {
if (imageSurface == null || !enabled) ret;
BufferedImage img = dm_webCamImage();
if (img == null || img == inputImage) ret;
inputImage = img;
w = img.getWidth();
h = img.getHeight();
long time = nanoTime();
pcall {
set analyzing;
tempInfo = null;
analyzeImage();
}
analyzing = false;
analysisTime = nanoTime()-time;
setInfo(joinNemptiesWithDot(tempInfo, "Recognition time: " + n2(analysisTime) + " ns"));
BufferedImage img2 = img;
if (overlay)
pcall { drawOverlays(img2 = cloneBufferedImage(img)); }
setImage(img2);
}
// overlord me, uh, i mean, overload me
// can use inputImage, w, h and setInfo
void analyzeImage() {
}
// overlooooad me if you want
void drawOverlays(BufferedImage img) {
renderRenderables(img, overlays);
}
void setInfo(S info) {
if (analyzing) tempInfo = info;
else setField(+info);
}
}