function ProcessImage()

in lib/main.js [772:958]


function ProcessImage(picture) {

    if (window.location.href.indexOf("f-see-text") != -1) {

        var blob;

        // Load base64 encoded image for display
        var reader = new FileReader();

        reader.onload = (function (theFile) {
            return function (e) {
                //Call Rekognition
                AWS.region = region;
                var rekognition = new AWS.Rekognition();
                var params = {
                    Image: {
                        Bytes: e.target.result,
                    },
                };

                rekognition.detectText(params, function (err, data) {
                    if (err) console.log(err, err.stack);
                    // an error occurred
                    else {
                        var string = "";
                        var stringHTML = "";
                        for (var i = 0; i < data.TextDetections.length; i++) {
                            if (data.TextDetections[i].Type == "LINE") {
                                string += data.TextDetections[i].DetectedText + ", ";
                                //stringHTML += data.TextDetections[i].DetectedText + "\r\n";
                                stringHTML += data.TextDetections[i].DetectedText + " ";
                            }
                        }

                        if (string != "") {
                            string = string.substring(0, string.length - 1);
                            stringHTML = stringHTML.substring(0, stringHTML.length - 1);
                            var urlParams = new URLSearchParams(queryString);
                            var languageFromURL = urlParams.get("language");
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedText").style.display = "block";
                            document.getElementById("detectedTextAlert").style.display = "none";
                            document.getElementById("detectedText").value = stringHTML;
                            document.getElementById("translate-dyslexic-div").style.display = "block";
                            speakDetectedTextFromWebcam(string, languageFromURL);
                        } else {
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedTextAlert").style.display = "block";
                            document.getElementById("translate-dyslexic-div").style.display = "none";
                            document.getElementById("detectedText").style.display = "none";
                            document.getElementById("detectedTextAlert").innerHTML = "No text detected. Please try again!";
                            speakDetectedTextFromWebcam("No text detected. Please try again!", "en-US");
                        }
                    }
                });
            };
        })(blob);

        fetch(picture)
            .then((resp) => resp.blob())
            .then((blob) => reader.readAsArrayBuffer(blob));

    }

    else if (window.location.href.indexOf("f-see-document") != -1) {

        var blob;

        // Load base64 encoded image for display
        var reader = new FileReader();

        reader.onload = (function (theFile) {
            return function (e) {
                //Call Textract
                var textract = new AWS.Textract();
                var params = {
                  Document: { /* required */
                    Bytes: e.target.result,
                  }
                };                

                textract.detectDocumentText(params, function (err, data) {
                    if (err) console.log(err, err.stack);
                    // an error occurred
                    else {
                        var string = "";
                        var stringHTML = "";
                        for (var i = 0; i < data.Blocks.length; i++) {
                            if (data.Blocks[i].BlockType == "LINE") {
                                string += data.Blocks[i].Text + ", ";
                                //stringHTML += data.Blocks[i].Text + "\r\n";
                                stringHTML += data.Blocks[i].Text + " ";
                            }
                        }

                        if (string != "") {
                            string = string.substring(0, string.length - 1);
                            stringHTML = stringHTML.substring(0, stringHTML.length - 1);
                            var urlParams = new URLSearchParams(queryString);
                            var languageFromURL = urlParams.get("language");
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedText").style.display = "block";
                            document.getElementById("detectedTextAlert").style.display = "none";
                            document.getElementById("detectedText").value = stringHTML;
                            document.getElementById("translate-dyslexic-div").style.display = "block";
                            speakDetectedTextFromWebcam(string, languageFromURL);
                        } else {
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedTextAlert").style.display = "block";
                            document.getElementById("translate-dyslexic-div").style.display = "none";
                            document.getElementById("detectedText").style.display = "none";
                            document.getElementById("detectedTextAlert").innerHTML = "No text detected. Please try again!";
                            speakDetectedTextFromWebcam("No text detected. Please try again!", "en-US");
                        }
                    }
                });
            };
        })(blob);

        fetch(picture)
            .then((resp) => resp.blob())
            .then((blob) => reader.readAsArrayBuffer(blob));

    }

    else if (window.location.href.indexOf("f-see-objects") != -1) {

        var blob;
        var labels = [];
        var parents = [];

        // Load base64 encoded image for display
        var reader = new FileReader();

        reader.onload = (function (theFile) {
            return function (e) {
                //Call Rekognition
                AWS.region = region;
                var rekognition = new AWS.Rekognition();
                var params = {
                    Image: {
                        Bytes: e.target.result,
                    },
                    MaxLabels: 10, 
                    MinConfidence: 80
                };

                rekognition.detectLabels(params, function (err, response) {
                    if (err) console.log(err, err.stack);
                    // an error occurred
                    else {
                        response.Labels.forEach(label => {
                            labels.push(label.Name);
                            if (typeof label.Parents !== 'undefined' && label.Parents.length > 0) 
                                label.Parents.forEach(parent => {
                                    parents.push(parent.Name);
                                })
                        })
                        labels = labels.filter( ( el ) => !parents.includes( el ) );
                        if (labels.length > 0) {
                            var string = "I see ";
                            labels.forEach(item => {
                                string += item.toLowerCase() + ", ";
                            }) 
                            string = string.substring(0, string.length - 2);
                            var urlParams = new URLSearchParams(queryString);
                            var languageFromURL = urlParams.get("language");
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedText").innerHTML = string;
                            speakDetectedTextFromWebcam(string, languageFromURL);
                        } else {
                            console.log("No objects detected. Please try again!");
                            document.getElementById("show-text").style.display = "block";
                            document.getElementById("detectedText").innerHTML = "No objects detected. Please try again!";
                            speakDetectedTextFromWebcam("No objects detected. Please try again!", "en-US");
                        }
                    }
                });
            };
        })(blob);

        fetch(picture)
            .then((resp) => resp.blob())
            .then((blob) => reader.readAsArrayBuffer(blob));

    }
}