94 lines
2.7 KiB
Lua
94 lines
2.7 KiB
Lua
local rr = require("rerun_lua")
|
|
|
|
|
|
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,
|
|
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,
|
|
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,
|
|
bbox = word.polygon
|
|
})
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
|
|
|
|
function group_by_type(xs_result)
|
|
|
|
function geo_to_bbox(geo)
|
|
return {geo.left, geo.top, geo.width, geo.height}
|
|
end
|
|
|
|
local result = {}
|
|
for _, field in pairs(xs_result.proposedFields.fields) do
|
|
result[field.type] = result[field.type] or {}
|
|
result[field.type][field.name] = {}
|
|
for i, sub_field in ipairs(field.subfields) do
|
|
table.insert(result[field.type][field.name], {
|
|
--name = sub_field.name,
|
|
text = sub_field.type,
|
|
bbox = geo_to_bbox(sub_field.geo),
|
|
})
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
function list_field_types(xs_result)
|
|
local result = {}
|
|
for _, field in pairs(xs_result.proposedFields.fields) do
|
|
result[field.type] = ""
|
|
end
|
|
return result
|
|
end
|
|
|
|
function filename(str)
|
|
local name = string.gsub(str, "(.*/)(.*)", "%2")
|
|
return name
|
|
end
|
|
|
|
function show(name, document, xs_result_path)
|
|
local xs_result = rr.json(xs_result_path)
|
|
local xs_fields = group_by_type(xs_result)
|
|
local record = rr.recording(name)
|
|
record:image(name, document)
|
|
for field_type, fields in pairs(xs_fields) do
|
|
for field_name, sub_fields in pairs(fields) do
|
|
record:text_objects(name .. "/" .. field_type .. "/" .. field_name, sub_fields)
|
|
end
|
|
end
|
|
end
|
|
|
|
local master = "/Volumes/data/problematics/10138832-0ec5-4ea9-bf9e-2d863f714b6c-result.json"
|
|
local fix = "/Volumes/data/problematics/10138832-0ec5-4ea9-bf9e-2d863f714b6c-result.json"
|
|
|
|
show("master","/Volumes/data/problematics/street_city_mixup.png", master )
|
|
show("fix","/Volumes/data/problematics/street_city_mixup.png", fix )
|