From 9f47f560624f4155b9ad59b56737ba77e40b7b9f Mon Sep 17 00:00:00 2001 From: Justin Georgi Date: Sun, 3 Mar 2024 08:57:46 -0700 Subject: [PATCH] Capture video frame for detection Signed-off-by: Justin Georgi --- src/pages/detect.vue | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/pages/detect.vue b/src/pages/detect.vue index 5a7794b..10bd31e 100644 --- a/src/pages/detect.vue +++ b/src/pages/detect.vue @@ -10,7 +10,7 @@
- Capture + Capture
@@ -545,7 +545,10 @@ }, getImage (searchImage) { let loadImage = new Promise(resolve => { - if (this.isCordova && this.imageLoadMode == "camera") { + if (this.videoAvailable) { + this.videoAvailable = false + resolve(searchImage) + } else if (this.isCordova && this.imageLoadMode == "camera") { resolve('data:image/jpg;base64,' + searchImage) } else { const searchImage = this.$refs.image_chooser.files[0] @@ -599,6 +602,16 @@ this.cameraStream = stream return null }, + captureVidFrame() { + const vidViewer = this.$refs.vid_viewer + vidViewer.pause() + let tempCVS = document.createElement('canvas') + tempCVS.height = vidViewer.videoHeight || parseInt(vidViewer.style.height) + tempCVS.width = vidViewer.videoWidth || parseInt(vidViewer.style.width) + const tempCtx = tempCVS.getContext('2d') + tempCtx.drawImage(vidViewer, 0, 0) + this.getImage(tempCVS.toDataURL()) + }, async submitData () { var uploadData = this.showResults .filter( d => { return d.aboveThreshold && d.isSearched && !d.isDeleted })