Guillermo
8 years ago
5 changed files with 167 additions and 69 deletions
@ -1,54 +1,53 @@ |
|||||||
|
import desaturate from './desaturate' |
||||||
|
import loadLanguage from './loadLanguage' |
||||||
|
|
||||||
export default function detect(jobId, module, base, image, cb){ |
export default function detect(jobId, module, base, image, cb){ |
||||||
var width = image.width, height = image.height; |
var width = image.width, height = image.height; |
||||||
image = desaturate(image) |
image = desaturate(image) |
||||||
|
|
||||||
var ptr = module.allocate(image, 'i8', module.ALLOC_NORMAL); |
var ptr = module.allocate(image, 'i8', module.ALLOC_NORMAL); |
||||||
console.log('allocated image') |
// console.log('allocated image')
|
||||||
// base = new module.TessBaseAPI()
|
|
||||||
|
loadLanguage(jobId, module, 'osd', err => { |
||||||
|
module._free(ptr); |
||||||
|
cb(err) |
||||||
|
}, success => { |
||||||
|
base.Init(null, 'osd') |
||||||
|
base.SetPageSegMode(module.PSM_OSD_ONLY) |
||||||
|
// console.log('loaded language')
|
||||||
|
|
||||||
loadLanguage('osd', jobId, function(err, result){ |
base.SetImage(module.wrapPointer(ptr), width, height, 1, width) |
||||||
if(err){ |
base.SetRectangle(0, 0, width, height) |
||||||
|
|
||||||
|
var results = new module.OSResults(); |
||||||
|
var success = base.DetectOS(results); |
||||||
|
if(!success){ |
||||||
|
base.End(); |
||||||
module._free(ptr); |
module._free(ptr); |
||||||
cb(err) |
cb("failed to detect os") |
||||||
} |
} |
||||||
else { |
else { |
||||||
base.Init(null, 'osd') |
var charset = results.get_unicharset() |
||||||
base.SetPageSegMode(module.PSM_OSD_ONLY) |
// console.log(charset)
|
||||||
console.log('loaded language') |
// results.print_scores()
|
||||||
|
|
||||||
base.SetImage(module.wrapPointer(ptr), width, height, 1, width) |
var best = results.get_best_result() |
||||||
base.SetRectangle(0, 0, width, height) |
var oid = best.get_orientation_id(), |
||||||
|
sid = best.get_script_id(); |
||||||
var results = new module.OSResults(); |
// console.log('orientation id', oid, [0, 270, 180, 90][oid], best.get_oconfidence())
|
||||||
var success = base.DetectOS(results); |
// console.log('script id', sid, charset.get_script_from_script_id(sid), best.get_sconfidence())
|
||||||
if(!success){ |
// console.log(best)
|
||||||
base.End(); |
|
||||||
module._free(ptr); |
cb(null, { |
||||||
cb("failed to detect os") |
tesseract_script_id: sid, |
||||||
} |
script: charset.get_script_from_script_id(sid), |
||||||
else { |
script_confidence: best.get_sconfidence(), |
||||||
var charset = results.get_unicharset() |
orientation_degrees: [0, 270, 180, 90][oid], |
||||||
console.log(charset) |
orientation_confidence: best.get_oconfidence() |
||||||
// results.print_scores()
|
}) |
||||||
|
|
||||||
var best = results.get_best_result() |
base.End(); |
||||||
var oid = best.get_orientation_id(), |
module._free(ptr); |
||||||
sid = best.get_script_id(); |
|
||||||
// console.log('orientation id', oid, [0, 270, 180, 90][oid], best.get_oconfidence())
|
|
||||||
// console.log('script id', sid, charset.get_script_from_script_id(sid), best.get_sconfidence())
|
|
||||||
// console.log(best)
|
|
||||||
|
|
||||||
cb(null, { |
|
||||||
tesseract_script_id: sid, |
|
||||||
script: charset.get_script_from_script_id(sid), |
|
||||||
script_confidence: best.get_sconfidence(), |
|
||||||
orientation_degrees: [0, 270, 180, 90][oid], |
|
||||||
orientation_confidence: best.get_oconfidence() |
|
||||||
}) |
|
||||||
|
|
||||||
base.End(); |
|
||||||
module._free(ptr); |
|
||||||
} |
|
||||||
} |
} |
||||||
}) |
}) |
||||||
} |
} |
Loading…
Reference in new issue