Warning: session_start(): open(/var/lib/php/sessions/sess_rki3fnhgenifpd0vr9ebp6vj2i, 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
!7
cmodule WebCamFaceFinder > DynImageSurfaceAndEnabled {
transient BufferedImage lastImage;
FaceFinderByPictures1 finder;
switchable bool overlay;
switchable bool useFullFinder;
switchable bool withNoFace = true;
transient ReliableSingleThread rstUpdateImage = dm_rst(this, r updateImage);
transient long duration = -1; // ms per recognition
transient JLabel lblDuration;
start-thread {
dm_onFieldChange useFullFinder(r makeFinder);
dm_onFieldChange withNoFace(r makeFinder);
dm_runInQAndWait(r makeFinder);
doEvery(100, rstUpdateImage);
}
void makeFinder {
FaceFinderByPictures1 finder;
File f = newFile(withNoFace ? ai_faceFinderDir("with-no-face") : ai_faceFinderDir(),
useFullFinder
? "full-finder.struct"
: "smallest-finder-over-95.struct");
finder = (FaceFinderByPictures1) unstructFileOpt(f);
if (finder != null)
print("Made finder: " + f);
else {
finder = defaultFaceFinderByPictures();
print("Using default finder");
}
setField(+finder);
}
afterVisualize {
imageSurface_pixelated(imageSurface);
containerAddFirst(buttons,
lblInfo = jlabel(),
dm_checkBox('overlay),
dm_checkBox('useFullFinder),
dm_checkBox('withNoFace));
}
void updateImage enter {
if (imageSurface == null || !enabled) ret;
final BufferedImage img = dm_webCamImage();
temp tempAfterwards(r { lastImage = img });
if (img == null || img == lastImage) ret;
RGBImage rgb = RGBImage(img);
long time = sysNow();
FoundImgPlus found = finder.getPlus(rgb);
setField(duration := sysNow()-time);
setText(lblInfo, duration + " ms. " + "Score: " + toPercent_int(foundImgScore(found)) + " %)") }
setSelection(foundImgToRect(found));
if (overlay) {
BufferedImage img2 = cloneBufferedImage(img);
if (found != null)
//fillRect(img2, found.r, Color.white);
drawScaledPixelatedImage(img2, toBufferedImage(found.data), found.r);
setImage(img2);
} else
setImage(img);
}
}