<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
+<pre id="res"></pre>
<script async src="js/opencv.js" type="text/javascript"></script>
-<script async src='https://unpkg.com/tesseract.js@v2.0.0-beta.1/dist/tesseract.min.js' onload="onTesseractReady();"></script>
+<script async src='https://unpkg.com/tesseract.js@v2.0.0-beta.1/dist/tesseract.min.js'
+ onload="onTesseractReady();"></script>
<script src="js/1000pct.js"></script>
<script src="js/perspective.js"></script>
<script src="js/ocr.js"></script>
function onTesseractReady() {
console.log('onTesseractReady()');
+ let types = {malus: 'abc', bonus: 'd', 'number': 'efghijklmno'};
+ window.tesseract = {};
(async () => {
- window.tesseractScheduler = Tesseract.createScheduler();
- for (let i = 0; i < 4; i++) {
- let worker = Tesseract.createWorker({
- langPath:'./assets/',
- });
- await worker.load();
- await worker.loadLanguage('font');
- await worker.initialize('font');
- tesseractScheduler.addWorker(worker);
+ for (var type in types) {
+
+ window.tesseract[type] = Tesseract.createScheduler();
+ for (let i = 0; i < 2; i++) {
+ let worker = Tesseract.createWorker({
+ langPath: './assets/',
+ });
+ await worker.load();
+ await worker.loadLanguage('font');
+ await worker.initialize('font');
+ await worker.setParameters({
+ tessedit_char_whitelist: types[type],
+ });
+ window.tesseract[type].addWorker(worker);
+ }
}
appReady();
})();
}
window.regions = {};
+ window.decodedRegions = 0;
for (let color in areas) {
regions[color] = {};
for (let area in areas[color]) {
// Grayscale
cv.cvtColor(res, res, cv.COLOR_RGBA2GRAY, 0);
// Brightness
- cv.convertScaleAbs(res, res, 1.9, 100);
+ cv.convertScaleAbs(res, res, 3, 100);
// Contrast
cv.equalizeHist(res, res);
let worker = new Tesseract.createWorker();
(async () => {
- const {data: {text}} = await window.tesseractScheduler.addJob('recognize', image);
- console.log(color, area, text);
- regions[color][area] = text;
+ const {data: {text}} = await window.tesseract[area].addJob('recognize', image);
+ var t = translate(text);
+ console.log(color, area, text, t);
+ regions[color][area] = t;
+ decodedRegions++;
+ if (decodedRegions == 12) {
+ document.getElementById('res').innerText = JSON.stringify(regions);
+ }
})();
// try {
// Tesseract.recognize(
// } catch (e) {
//
// }
+}
+
+var map = {
+ a: 'block',
+ b: 'bomb',
+ c: 'bug',
+ d: 'rocket',
+ e: '0',
+ f: '1',
+ g: '2',
+ h: '3',
+ i: '4',
+ j: '5',
+ k: '6',
+ l: '7',
+ m: '8',
+ n: '9',
+ o: '?'
+}
+
+function translate(t) {
+ var res = '';
+ for (let i = 0; i < t.length; i++) {
+ let m = map[t[i]];
+ if (m !== undefined) {
+ res += map[t[i]];
+ }
+ }
+ return res;
}
\ No newline at end of file