From 3c22ffb15412b2f7f0f398f540c29382a9a7b499 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 2 Jan 2020 17:16:12 +0100 Subject: [PATCH] wip #3207 @2 --- js/1000pct.js | 4 ++-- js/ocr.js | 34 ++++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/js/1000pct.js b/js/1000pct.js index a383008..c41fa21 100644 --- a/js/1000pct.js +++ b/js/1000pct.js @@ -6,8 +6,8 @@ function appReady() { if (navigator.mediaDevices) { navigator.mediaDevices.getUserMedia({ video: { - width: {min: 1280}, - height: {min: 1280}, + width: {min: 1680}, + height: {min: 1680}, facingMode: {exact: "environment"} }, audio: false }).then(function (stream) { diff --git a/js/ocr.js b/js/ocr.js index 83541c1..f745d2e 100644 --- a/js/ocr.js +++ b/js/ocr.js @@ -101,7 +101,7 @@ function extractRegion(src, region, color, area) { // Grayscale cv.cvtColor(res, res, cv.COLOR_RGBA2GRAY, 0); - var brightness = 2; + var brightness = 2.4; h2 = 30 * coef; // Brightness @@ -118,7 +118,8 @@ function extractRegion(src, region, color, area) { function ocr(image, color, area) { (async () => { const res = await window.tesseract[area].addJob('recognize', image); - regions[color][area] = translate(); + console.log(color, area); + regions[color][area] = translate(res); decodedRegions++; if (decodedRegions === 12) { document.getElementById('res').innerText = JSON.stringify(regions); @@ -158,13 +159,34 @@ var map = { } -function translate(t) { +function translate(ocr) { var res = ''; - for (let i = 0; i < t.length; i++) { - let m = map[t[i]]; + console.log(ocr); + var maxconfidence = 0; + var minconfidence = 100; + var sumconfidence = 0; + + for (let i = 0; i < ocr.data.symbols.length; i++) { + var c = ocr.data.symbols[i].confidence; + sumconfidence += c; + minconfidence = Math.min(minconfidence, c); + maxconfidence = Math.max(maxconfidence, c); + } + var avgconfidence = sumconfidence / ocr.data.symbols.length; + + for (let i = 0; i < ocr.data.symbols.length; i++) { + var symbol = ocr.data.symbols[i]; + var width = Math.abs(symbol.bbox.x1 - symbol.bbox.x0); + var height = Math.abs(symbol.bbox.y1 - symbol.bbox.y0); + //console.log(width, height, symbol.confidence); + if (symbol.confidence < 30 || width < 15 || height < 15) { + continue; + } + let m = map[symbol.text]; if (m !== undefined) { - res += map[t[i]]; + res += map[symbol.text]; } } + console.log(res); return res; } \ No newline at end of file -- 2.39.5