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));
}
}