https://www.youtube.com/watch?v=rOoXAWSu5-M
Untitled
Letter Shape Classification
Overview
General Applied Computer Science -- shopperMarket
Intro. demand statistics for crash-course outline
https://oercommons.org/courseware/lesson/107799/overview
for additional references to OCR
Introductory Announcement:
In this lesson, we explore the code in the example HTML JavaScript at URL http://www.dialtosee.com. The website does continue to strive towards the Optical Character Recognition (OCR) written in vanilla js. When you have time, please advise the file include::"FCS_n2.js" which may contain errors from being hand written. The contents of "FCS_n2.js" detect a single closed shape looped many times to include all shapes (closed) within a monochrome image of various dimension [depending-on camera] (particularly in smartphone) with the purpose of searching a 24bit color file for a certain word. In the example of being at a supermarket and using the mobil-device to take a picture to search for less confusion as advertisement tend to overwhelm.
on youTube videos keyword:"dial2c" M,R.'s animations display a fast-but-general understanding of this alien page.
Reccomend: "youTube video on M,R.'s channel" title="dial2see" at store by Peg Anke.
Note: www.dial2c.com website also compresses 16,777,216colors to monochrome in two steps. First compressing the photo into 27 (-or- less) colors via function "E_26(IMDT_Dot)", with "IMDT_Dot" being the argument passed to the function "E_26" and returning the native ImageData object.
function fastObjects($) is a fairly difficult read and may be discussed in another lesson; However, is the main interest to edit what indexed objects are recognized A-Z (not numbers). As https://www.twoExponents4096.com suggests, we can turn a character ideograph into a decimal. Full 24bit or monochrome, the load time of Dialtosee.com's results are quick.
Exploring the code behind the <HTML>: = visit the web page on a dedicated machine and in Microsoft® Windows© (left-click)= "Save Page As.." [web-page complete] /downloads or selected personal folder. "LetterBuild" will not run without manual edit to the HTML <script src="..files"/> from this downloaded system of files. I suggest continuing the name of "LetterBuild" which may be downloaded freely, as freeWare and holds harmless anyone viewing and gaining from any information in. -- Legally, student's attempting good and the bettering of humanity shall be protected.
The basics of HTML without CSS, SEO, MetaData<tags> may be available on the web and I recommend https://www.w3schools.com also teaching JavaScript to expected understandings. When you need help here with code Syntax and native methods and objects, operators, block and function form... w3schools in HTML5.
1. Explore the code.
HTML -- located at the bottom most reach of the page is quite overwhelming and needs an edit. Key <tags> are: 4ea - canvas objects especially "scaleStill" with [onclick="moonme(event)"] this accesses programatically the input[id="wrhouse"][type="file"] opening the function "gather()" opening the access to get a photograph using the users camera. the image is duplicated and scaled (irregularly- fitting the device width) and the monochrome compression is rendered, touch-keyboard debugged, and monochrome (closed shapes) visibly rendered.
JavaScript -- Using the read then call style, the most commonly used functions begin in the script <tag>. I do wish you well in processing the data in a non-User-friendly way.
2. Try this trusted site and communicate how we may develop a standard in tesseract deep-learning to understand this Artificial Intelligence. Mainly in optical characters rendered in every orientation with the first goal being: To index the entire 4096 character map to include all non-censored shapes, closed-or-not. Secondly, emoji's classifications may be sorted by search strings, eventually at all finite search strings and combinations. Likewise, Photographs may be scanned by facial recognition learning and machine-training to include the polygraph.
After: EXPLORING THIS HUB: you may be enriched with the ability to functionally use the technology at hand to properly investigate and explore information practically and scientificlly.
Ternary
24bit Compression to 26 color + 1 bin
bbbb Tri Color monochrome 00000 000 _ #000000 0 00001 001 A #800000 0 00010 002 B #FF0000 0 00011 010 C #008000 0 00100 011 D #808000 0 00101 012 E #FF8000 1 00110 020 F #00FF00 1 00111 021 G #80FF00 1 01000 022 H #FFFF00 1 01001 100 I #0000FF 0 01010 101 J #8000FF 0 01011 102 K #FF0080 0 01100 110 L #008080 0 01101 111 M #808080 2 01110 112 N #FF8080 1 01111 120 O #00FF80 1 10000 121 P #80FF80 1 10001 122 Q #FFFF80 1 10010 200 R #0000FF 0 10011 201 S #8000FF 0 10100 202 T #FF00FF 0 10101 210 U #0080FF 0 10110 211 V #8080FF 1 10111 212 W #FF80FF 1 11000 220 X #00FFFF 1 11001 221 Y #80FFFF 1 11010 222 Z #FFFFFF 1 11011 11100 11101 11110 11111
Edge Detection
word wrap ---------------------------------------------------------------------------------------------- //snippit -- DO NOT RUN alone function closedChr(aGch, all, etfn) { var Walk = aGch; var width = Walk[Walk.length - 2]; var height = Walk[Walk.length - 1]; if(all === true) { var bwRen = []; var capture = []; var tooBig = (width - Math.round(width * 0.6) > 24)? Math.round(width * 0.6):width - 4; } var m = 0; var e = [], a = []; var n = 0, p = 0; var c = 0, i = 0, a = 0, j = 0; var d = 0, u = 0, m = 0, b = 0; var x1 = 0, x2 = 0; var y1 = 0, y2 = 0; var x7 = 0, y7 = 0; for(d = 1; d < height - 2; d += _CRH_ - 1) { for(u = 1; u < width - 2; u++) { p = u + (d * width); if((Walk[p] === etfn[1]) && (Walk[p - 1] === etfn[1])) { if((Walk[p + 1] === etfn[2]) || (Walk[p + 1] === etfn[3])) { x1 = width; y1 = height; x2 = y2 = 0; Walk[p] = etfn[0]; e = []; e.push(Walk[(p - 1) - width]); e.push(Walk[p - width]); e.push(Walk[(p + 1) - width]); e.push(Walk[p - 1]); e.push(Walk[p]); e.push(Walk[p + 1]); e.push(Walk[(p - 1) + width]); e.push(Walk[p + width]); e.push(Walk[(p + 1) + width]); if(e[3] === etfn[1]){if(e[0] === etfn[1]){a = 1;}else{a = 4;}} if(e[1] === etfn[1]){if(e[2] === etfn[1]){a = 3;}else{a = 2;}} m = 0; while((a < 9) && (a > 0)) { if(all) { if(++m % _CRH_ === 0) { m = 0; Pane[p] = NaN; } } if(a === 1){p--; p -= width;} if(a === 2){p -= width;} if(a === 3){p++; p -= width;} if(a === 4){p--;} if(a === 5){p++;} if(a === 6){p--; p += width;} if(a === 7){p += width;} if(a === 8){p++; p += width;} e = []; e.push(Walk[(p - 1) - width]); e.push(Walk[p - width]); e.push(Walk[(p + 1) - width]); e.push(Walk[p - 1]); e.push(Walk[p]); e.push(Walk[p + 1]); e.push(Walk[(p - 1) + width]); e.push(Walk[p + width]); e.push(Walk[(p + 1) + width]); a = directional(e, a, etfn); if(a > 0) { c = p % width; i = Math.floor(p / width); if(c < x1){x1 = c;} if(c > x2){x2 = c;} if(i < y1){y1 = i;} if(i > y2){y2 = i;} } } Walk[u + (d * width)] = etfn[1]; if(a === 9) { x7 = x2 - ++x1; y7 = y2 - ++y1; if((x7 > 0) && (y7 > _CRH_ - 1)) { if(!all) { return scaleSquare(_CRH_, Walk, [x1, y1, x2, y2, x7, y7, width], all, etfn[1]); }else if(all) { if(x7 < tooBig) { for(m = _CRH_; m < _CMH_; m++) { if(m <= y7) { ea = []; ea = Attn(scaleSquare(m, Walk, [x1, y1, x2, y2, x7, y7, width], true, true));//Walk[u + (d * width)])); capture.push(ea); capture.push(iA(ea)); if(m === _CRH_) { if(ea[ea.length - 1] === _CRH_) { bwRen.push([x1, y1, x7, y7]); LIST.push(ea);//ch LIST.push(iA(ea));//ch }//else LIST error } } }//m Llib.push(capture); capture = []; } } } } } } } } if(all === false) { return [0]; }else if(all) { // Llib = Tll2Sm(L2ib); // L2ib = []; return bwRen; } return [0]; } -----------------------------------------------------------------------------------------------