Google apps script 我可以为Google Drive OCR中太小的字母设置阈值吗?
我正在使用谷歌光盘OCR API识别图片中的文本。但问题是,它可以阅读任何文本,即使是非常非常小的微观文本。我是否可以设置一个阈值,以便忽略非常小的字母?我不需要非常小的文本 我在Google Apps脚本中使用以下代码:Google apps script 我可以为Google Drive OCR中太小的字母设置阈值吗?,google-apps-script,google-drive-api,ocr,text-recognition,Google Apps Script,Google Drive Api,Ocr,Text Recognition,我正在使用谷歌光盘OCR API识别图片中的文本。但问题是,它可以阅读任何文本,即使是非常非常小的微观文本。我是否可以设置一个阈值,以便忽略非常小的字母?我不需要非常小的文本 我在Google Apps脚本中使用以下代码: if (request.parameters.url != undefined && request.parameters.url != "") { var imageBlob = UrlFetchApp.fetch(reques
if (request.parameters.url != undefined && request.parameters.url != "") {
var imageBlob = UrlFetchApp.fetch(request.parameters.url).getBlob();
var resource = {
title: imageBlob.getName(),
mimeType: imageBlob.getContentType()
};
var options = {
ocr: true
};
var docFile = Drive.Files.insert(resource, imageBlob, options);
var doc = DocumentApp.openById(docFile.id);
var text = doc.getBody().getText().replace("\n", "");
Drive.Files.remove(docFile.id);
return ContentService.createTextOutput(text);
}else {
return ContentService.createTextOutput("request error");
}
}```
没有办法在OCR中添加一个阈值作为参数,但有一个解决方法可以做到 您可以尝试读取它创建的文档的子文档的字体大小,而不是源材料的字体大小
function doOCR() {
// JT digital inspiration (font 19 in document)
// tech à la carte (font 9 in document)
var image = UrlFetchApp.fetch('http://img.labnol.org/logo.png').getBlob();
var file = {
title: 'OCR File',
mimeType: 'image/png'
};
var docFile = Drive.Files.insert(file, image, {ocr: true});
var doc = DocumentApp.openById(docFile.id).getBody();
var numElements = doc.getNumChildren();
// Traverse all children
for (var i = 0; i < numElements; ++i ) {
var element = doc.getChild(i);
var fontSize = element.getFontSize();
var textValue = element.asText().getText();
var type = element.getType();
// Add condition, if font size is less than your threshold
// There are other children that have fontSize but doesn't have textValue, skip them
if( type == DocumentApp.ElementType.PARAGRAPH && textValue != "" && fontSize > 10){
Logger.log(textValue);
}
}
}
函数doOCR(){
//JT数字灵感(文档中的字体19)
//技术点菜(文件中的字体9)
var image=UrlFetchApp.fetch('http://img.labnol.org/logo.png').getBlob();
变量文件={
标题:“OCR文件”,
mimeType:'image/png'
};
var docFile=Drive.Files.insert(文件,图像,{ocr:true});
var doc=DocumentApp.openById(docFile.id).getBody();
var numElements=doc.getNumChildren();
//遍历所有子对象
对于(变量i=0;i10){
Logger.log(textValue);
}
}
}
您还可以自定义以跳过特定的字体大小,只需修改条件即可
:
输出(文件):
输出(控制台):
参考资料: