lua-modules/lua/rr.example.lua

94 lines
2.9 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
--local ms_form = rr.json("/Users/tbr/Desktop/ms_form.json")
local xs_result = rr.json("/Volumes/data/problematics/10138832-0ec5-4ea9-bf9e-2d863f714b6c-result.json")
local xs_fields = group_by_type(xs_result)
local record = rr.recording("fix")
record:image("steets_city_mixup", "/Volumes/data/problematics/street_city_mixup.png")
for field_type, fields in pairs(xs_fields) do
for field_name, sub_fields in pairs(fields) do
record:text_objects("steets_city_mixup/" .. field_type .. "/" .. field_name, sub_fields)
end
end
--local master_xs_result = rr.json("/Volumes/data/problematics/0636036f-6ade-41db-8fbe-1a97b2cdb6ca-result.json")
--local master_fields = group_by_type(master_xs_result)
--local master_record = rr.recording("master")
--master_record:image("steets_city_mixup", "/Volumes/data/problematics/street_city_mixup.png")
--for field_type, fields in pairs(master_fields) do
-- for field_name, sub_fields in pairs(fields) do
-- master_record:text_objects("steets_city_mixup/" .. field_type .. "/" .. field_name, sub_fields)
-- end
--end