local rr = require("rerun_lua") function bbox(ms_ocr_bbox) return rr.rect_xyxy { ms_ocr_bbox[1], ms_ocr_bbox[2], ms_ocr_bbox[5], ms_ocr_bbox[6], } end function paragraphs(ms_form_result) local result = {} for _, paragraph in ipairs(ms_form_result.analyzeResult.paragraphs) do for _, region in ipairs(paragraph.boundingRegions) do table.insert(result, { text = paragraph.content, page = region.pageNumber, bbox = bbox(region.polygon) }) end end return result end function lines(ms_form_result) local result = {} for _, page in ipairs(ms_form_result.analyzeResult.pages) do for _, line in ipairs(page.lines) do table.insert(result, { text = line.content, page = page.pageNumber, bbox = bbox(line.polygon) }) end end return result end function words(ms_form_result) local result = {} for _, page in ipairs(ms_form_result.analyzeResult.pages) do for _, word in ipairs(page.words) do table.insert(result, { text = word.content, page = page.pageNumber, bbox = bbox(word.polygon) }) end end return result end local ms_form = rr.json("/Users/tbr/Desktop/ms_form.json") local record = rr.recording("example-2") record:image("54-1", "/Users/tbr/Desktop/00054-1.png") record:image("54-0", "/Users/tbr/Desktop/00054-0.png") record:text_objects("54-0/ms-forms/paragraphs",paragraphs(ms_form)) record:text_objects("54-0/ms-forms/lines",lines(ms_form)) record:text_objects("54-0/ms-forms/words",words(ms_form))