From fca0ef0c3de56739d35d2fef0d01676732a8db04 Mon Sep 17 00:00:00 2001 From: Mauricio Villegas Date: Fri, 3 May 2019 19:59:13 +0200 Subject: [PATCH] - Implemented functions to work with groups: addGroup, addToGroup, selectGroupElements. - Updated circleci configuration. --- .circleci/config.yml | 20 ++-- docs/py-pagexml/_modules/index.html | 6 +- docs/py-pagexml/_modules/pagexml.html | 6 +- docs/py-pagexml/_modules/pagexml/pagexml.html | 58 +++++++++- .../_static/documentation_options.js | 2 +- docs/py-pagexml/genindex.html | 12 +- docs/py-pagexml/index.html | 12 +- docs/py-pagexml/objects.inv | Bin 2816 -> 2829 bytes docs/py-pagexml/pagexml.html | 71 +++++++++++- docs/py-pagexml/py-modindex.html | 6 +- docs/py-pagexml/search.html | 6 +- docs/py-pagexml/searchindex.js | 2 +- lib/PageXML.cc | 108 +++++++++++++++++- lib/PageXML.h | 5 +- py-pagexml/pagexml/PageXML_doxy2swig.i | 37 ++++++ 15 files changed, 308 insertions(+), 43 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c963902..9fd733d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,4 @@ -version: 2 +version: 2.1 dockerbuild: &dockerbuild steps: @@ -15,11 +15,11 @@ dockerbuild: &dockerbuild paths: ./py-pagexml/dist/*.whl jobs: - build-16.04-py35: + build-1604-py35: docker: - image: mauvilsa/pagexml:build-ubuntu16.04-py35 <<: *dockerbuild - build-18.04-py36: + build-1804-py36: docker: - image: mauvilsa/pagexml:build-ubuntu18.04-py36 <<: *dockerbuild @@ -55,17 +55,19 @@ workflows: version: 2 main: jobs: - - build-16.04-py35: + - build-1604-py35: <<: *tagfilter - - build-18.04-py36: + - build-1804-py36: <<: *tagfilter - publish-pypi: <<: *tagfilter + context: pagexml-context requires: - - build-16.04-py35 - - build-18.04-py36 + - build-1604-py35 + - build-1804-py36 - publish-github: <<: *tagfilter + context: pagexml-context requires: - - build-16.04-py35 - - build-18.04-py36 + - build-1604-py35 + - build-1804-py36 diff --git a/docs/py-pagexml/_modules/index.html b/docs/py-pagexml/_modules/index.html index 5287ef2..1d4a8c1 100644 --- a/docs/py-pagexml/_modules/index.html +++ b/docs/py-pagexml/_modules/index.html @@ -8,7 +8,7 @@ - Overview: module code — pagexml 2019.4.26 documentation + Overview: module code — pagexml 2019.5.3 documentation @@ -58,7 +58,7 @@
- 2019.4.26 + 2019.5.3
@@ -83,7 +83,7 @@ diff --git a/docs/py-pagexml/_modules/pagexml.html b/docs/py-pagexml/_modules/pagexml.html index 21850a3..91829bc 100644 --- a/docs/py-pagexml/_modules/pagexml.html +++ b/docs/py-pagexml/_modules/pagexml.html @@ -8,7 +8,7 @@ - pagexml — pagexml 2019.4.26 documentation + pagexml — pagexml 2019.5.3 documentation @@ -58,7 +58,7 @@
- 2019.4.26 + 2019.5.3
@@ -83,7 +83,7 @@ diff --git a/docs/py-pagexml/_modules/pagexml/pagexml.html b/docs/py-pagexml/_modules/pagexml/pagexml.html index 165bd59..a1b096f 100644 --- a/docs/py-pagexml/_modules/pagexml/pagexml.html +++ b/docs/py-pagexml/_modules/pagexml/pagexml.html @@ -8,7 +8,7 @@ - pagexml — pagexml 2019.4.26 documentation + pagexml — pagexml 2019.5.3 documentation @@ -58,7 +58,7 @@
- 2019.4.26 + 2019.5.3
@@ -83,7 +83,7 @@ @@ -13007,6 +13007,58 @@

Source code for pagexml

         return _pagexml.PageXML_getLeftRightTopBottomReadingOrder(self, elems, max_angle_diff, max_horiz_iou, min_prolong_fact, prolong_alpha, fake_baseline, recurse_factor)
+
[docs] def addGroup(self, *args, **kwargs): + """ + + Adds a Group to the PcGts node. + + Arguments: + id (const char *): ID for Page, if NULL it is selected automatically. + elems (std::vector< xmlNodePt >): Elements to add (must have id attributes). + before_node (xmlNodePt): If !=NULL inserts it before the provided Group node. + + Returns: + xmlNodePt: Pointer to created element. + + + """ + return _pagexml.PageXML_addGroup(self, *args, **kwargs)
+ + +
[docs] def addToGroup(self, group, elems): + """ + + Adds elements to a Group. + + Arguments: + group (xmlNodePt): Pointer to group node. + elems (std::vector< xmlNodePt >): Elements to add (must have id attributes). + + Returns: + int: Number of elements added. + + + """ + return _pagexml.PageXML_addToGroup(self, group, elems)
+ + +
[docs] def selectGroupElements(self, group, recurse=True): + """ + + Selects all elements referenced by a Group. + + Arguments: + group (xmlNodePt): Pointer to group node. + recurse (bool): Whether to recurse into group members which are groups. + + Returns: + std::vector< xmlNodePt >: Number of elements added. + + + """ + return _pagexml.PageXML_selectGroupElements(self, group, recurse)
+ +
[docs] def getDocPtr(self): """ diff --git a/docs/py-pagexml/_static/documentation_options.js b/docs/py-pagexml/_static/documentation_options.js index 8fb9522..f692bb6 100644 --- a/docs/py-pagexml/_static/documentation_options.js +++ b/docs/py-pagexml/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2019.4.26', + VERSION: '2019.5.3', LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', diff --git a/docs/py-pagexml/genindex.html b/docs/py-pagexml/genindex.html index 6f84e34..2d140b5 100644 --- a/docs/py-pagexml/genindex.html +++ b/docs/py-pagexml/genindex.html @@ -9,7 +9,7 @@ - Index — pagexml 2019.4.26 documentation + Index — pagexml 2019.5.3 documentation @@ -59,7 +59,7 @@
- 2019.4.26 + 2019.5.3
@@ -84,7 +84,7 @@ @@ -181,6 +181,8 @@

A

  • addElem() (pagexml.PageXML method)
  • addGlyph() (pagexml.PageXML method) +
  • +
  • addGroup() (pagexml.PageXML method)
  • addPage() (pagexml.PageXML method)
  • @@ -189,6 +191,8 @@

    A

  • addTextLine() (pagexml.PageXML method)
  • addTextRegion() (pagexml.PageXML method) +
  • +
  • addToGroup() (pagexml.PageXML method)
  • addWord() (pagexml.PageXML method)
  • @@ -1111,6 +1115,8 @@

    S

  • selectByID() (pagexml.PageXML method)
  • selectByOverlap() (pagexml.PageXML method) +
  • +
  • selectGroupElements() (pagexml.PageXML method)
  • selectNth() (pagexml.PageXML method)
  • diff --git a/docs/py-pagexml/index.html b/docs/py-pagexml/index.html index 05b1002..bb56d78 100644 --- a/docs/py-pagexml/index.html +++ b/docs/py-pagexml/index.html @@ -8,7 +8,7 @@ - py-pagexml: Python wrapper for the PageXML C++ library — pagexml 2019.4.26 documentation + py-pagexml: Python wrapper for the PageXML C++ library — pagexml 2019.5.3 documentation @@ -35,7 +35,7 @@ - + @@ -59,7 +59,7 @@
    - 2019.4.26 + 2019.5.3
    @@ -84,7 +84,7 @@ @@ -302,7 +302,7 @@

    Crop an element and save image to disk

    diff --git a/docs/py-pagexml/objects.inv b/docs/py-pagexml/objects.inv index 2ed80b6766878eab11a6161f05efe10ebabbb25b..34443d752c0833ea53a7f9290947363ba37e57cd 100644 GIT binary patch delta 2726 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 delta 2713 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 T`mWN?stSKEvis@3wFCf5qxC*a diff --git a/docs/py-pagexml/pagexml.html b/docs/py-pagexml/pagexml.html index 109450f..821f472 100644 --- a/docs/py-pagexml/pagexml.html +++ b/docs/py-pagexml/pagexml.html @@ -8,7 +8,7 @@ - pagexml API (version 2019.4.26) — pagexml 2019.4.26 documentation + pagexml API (version 2019.5.3) — pagexml 2019.5.3 documentation @@ -59,7 +59,7 @@
    - 2019.4.26 + 2019.5.3
    @@ -84,7 +84,7 @@
      -
    • pagexml API (version 2019.4.26)
        +
      • pagexml API (version 2019.5.3)
      • @@ -134,7 +134,7 @@
      • Docs »
      • -
      • pagexml API (version 2019.4.26)
      • +
      • pagexml API (version 2019.5.3)
      • @@ -154,7 +154,7 @@
        -

        pagexml API (version 2019.4.26)

        +

        pagexml API (version 2019.5.3)

        pagexml module

        @@ -1499,6 +1499,27 @@

        pagexml API (version 2019.4.26) +
        +addGroup(*args, **kwargs)[source]
        +

        Adds a Group to the PcGts node.

        +
        +
        Parameters
        +
          +
        • id (const char *) – ID for Page, if NULL it is selected automatically.

        • +
        • elems (std::vector< xmlNodePt >) – Elements to add (must have id attributes).

        • +
        • before_node (xmlNodePt) – If !=NULL inserts it before the provided Group node.

        • +
        +
        +
        Returns
        +

        Pointer to created element.

        +
        +
        Return type
        +

        xmlNodePt

        +
        +
        +

        +
        addPage(*args)[source]
        @@ -1631,6 +1652,26 @@

        pagexml API (version 2019.4.26) +
        +addToGroup(group, elems)[source]
        +

        Adds elements to a Group.

        +
        +
        Parameters
        +
          +
        • group (xmlNodePt) – Pointer to group node.

        • +
        • elems (std::vector< xmlNodePt >) – Elements to add (must have id attributes).

        • +
        +
        +
        Returns
        +

        Number of elements added.

        +
        +
        Return type
        +

        int

        +
        +
        +

        +
        addWord(*args)[source]
        @@ -3713,6 +3754,26 @@

        pagexml API (version 2019.4.26) +
        +selectGroupElements(group, recurse=True)[source]
        +

        Selects all elements referenced by a Group.

        +
        +
        Parameters
        +
          +
        • group (xmlNodePt) – Pointer to group node.

        • +
        • recurse (bool) – Whether to recurse into group members which are groups.

        • +
        +
        +
        Returns
        +

        Number of elements added.

        +
        +
        Return type
        +

        std::vector< xmlNodePt >

        +
        +
        +

        +
        selectNth(*args)[source]
        diff --git a/docs/py-pagexml/py-modindex.html b/docs/py-pagexml/py-modindex.html index da56191..65f2c7a 100644 --- a/docs/py-pagexml/py-modindex.html +++ b/docs/py-pagexml/py-modindex.html @@ -8,7 +8,7 @@ - Python Module Index — pagexml 2019.4.26 documentation + Python Module Index — pagexml 2019.5.3 documentation @@ -61,7 +61,7 @@
        - 2019.4.26 + 2019.5.3
        @@ -86,7 +86,7 @@ diff --git a/docs/py-pagexml/search.html b/docs/py-pagexml/search.html index 02f6a46..a14f324 100644 --- a/docs/py-pagexml/search.html +++ b/docs/py-pagexml/search.html @@ -8,7 +8,7 @@ - Search — pagexml 2019.4.26 documentation + Search — pagexml 2019.5.3 documentation @@ -59,7 +59,7 @@
        - 2019.4.26 + 2019.5.3
        @@ -84,7 +84,7 @@ diff --git a/docs/py-pagexml/searchindex.js b/docs/py-pagexml/searchindex.js index f75548e..1d39647 100644 --- a/docs/py-pagexml/searchindex.js +++ b/docs/py-pagexml/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","pagexml"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","pagexml.rst"],objects:{"":{pagexml:[1,0,0,"-"]},"pagexml.PageXML":{clone:[1,2,1,""]},"pagexml":{DataType_Vec2b:[1,4,1,""],DataType_Vec2d:[1,4,1,""],DataType_Vec2f:[1,4,1,""],DataType_Vec2i:[1,4,1,""],DataType_Vec2s:[1,4,1,""],DataType_Vec2w:[1,4,1,""],DataType_Vec3b:[1,4,1,""],DataType_Vec3d:[1,4,1,""],DataType_Vec3f:[1,4,1,""],DataType_Vec3i:[1,4,1,""],DataType_Vec3s:[1,4,1,""],DataType_Vec3w:[1,4,1,""],DataType_Vec4b:[1,4,1,""],DataType_Vec4d:[1,4,1,""],DataType_Vec4f:[1,4,1,""],DataType_Vec4i:[1,4,1,""],DataType_Vec4s:[1,4,1,""],DataType_Vec4w:[1,4,1,""],DataType_Vec6d:[1,4,1,""],DataType_Vec6f:[1,4,1,""],DataType_Vec6i:[1,4,1,""],DataType_Vec8i:[1,4,1,""],DataType_bool:[1,1,1,""],DataType_char:[1,1,1,""],DataType_double:[1,1,1,""],DataType_float:[1,1,1,""],DataType_int:[1,1,1,""],DataType_schar:[1,1,1,""],DataType_short:[1,1,1,""],DataType_uchar:[1,1,1,""],DataType_ushort:[1,1,1,""],Mat1b:[1,4,1,""],Mat1d:[1,4,1,""],Mat1f:[1,4,1,""],Mat1i:[1,4,1,""],Mat1s:[1,4,1,""],Mat1w:[1,4,1,""],Mat2b:[1,4,1,""],Mat2d:[1,4,1,""],Mat2f:[1,4,1,""],Mat2i:[1,4,1,""],Mat2s:[1,4,1,""],Mat2w:[1,4,1,""],Mat3b:[1,4,1,""],Mat3d:[1,4,1,""],Mat3f:[1,4,1,""],Mat3i:[1,4,1,""],Mat3s:[1,4,1,""],Mat3w:[1,4,1,""],Mat4b:[1,4,1,""],Mat4d:[1,4,1,""],Mat4f:[1,4,1,""],Mat4i:[1,4,1,""],Mat4s:[1,4,1,""],Mat4w:[1,4,1,""],Mat:[1,1,1,""],Matx21b:[1,4,1,""],Matx21d:[1,4,1,""],Matx21f:[1,4,1,""],Matx21i:[1,4,1,""],Matx21s:[1,4,1,""],Matx21w:[1,4,1,""],Matx31b:[1,4,1,""],Matx31d:[1,4,1,""],Matx31f:[1,4,1,""],Matx31i:[1,4,1,""],Matx31s:[1,4,1,""],Matx31w:[1,4,1,""],Matx41b:[1,4,1,""],Matx41d:[1,4,1,""],Matx41f:[1,4,1,""],Matx41i:[1,4,1,""],Matx41s:[1,4,1,""],Matx41w:[1,4,1,""],Matx61d:[1,4,1,""],Matx61f:[1,4,1,""],Matx61i:[1,4,1,""],Matx81i:[1,4,1,""],Matx_AddOp:[1,1,1,""],Matx_DivOp:[1,1,1,""],Matx_MatMulOp:[1,1,1,""],Matx_MulOp:[1,1,1,""],Matx_ScaleOp:[1,1,1,""],Matx_SubOp:[1,1,1,""],Matx_TOp:[1,1,1,""],NamedImage:[1,1,1,""],NamedImageVector:[1,1,1,""],OGRMultiLineString_:[1,1,1,""],OGRMultiPolygon_:[1,1,1,""],PageXML:[1,1,1,""],PageXML_isBBox:[1,3,1,""],PageXML_nodeIs:[1,3,1,""],PageXML_pointsBBox:[1,3,1,""],PageXML_pointsLimits:[1,3,1,""],PageXML_pointsToString:[1,3,1,""],PageXML_printVersions:[1,3,1,""],PageXML_setValidationEnabled:[1,3,1,""],PageXML_stringToPoints:[1,3,1,""],PageXML_version:[1,3,1,""],Point2d:[1,4,1,""],Point2f:[1,4,1,""],Point2i:[1,4,1,""],Point:[1,4,1,""],Range:[1,1,1,""],Size2d:[1,4,1,""],Size2f:[1,4,1,""],Size2i:[1,4,1,""],Size:[1,4,1,""],SwigPyIterator:[1,1,1,""],Vec2b:[1,4,1,""],Vec2d:[1,4,1,""],Vec2f:[1,4,1,""],Vec2i:[1,4,1,""],Vec2s:[1,4,1,""],Vec2w:[1,4,1,""],Vec3b:[1,4,1,""],Vec3d:[1,4,1,""],Vec3f:[1,4,1,""],Vec3i:[1,4,1,""],Vec3s:[1,4,1,""],Vec3w:[1,4,1,""],Vec4b:[1,4,1,""],Vec4d:[1,4,1,""],Vec4f:[1,4,1,""],Vec4i:[1,4,1,""],Vec4s:[1,4,1,""],Vec4w:[1,4,1,""],Vec6d:[1,4,1,""],Vec6f:[1,4,1,""],Vec6i:[1,4,1,""],Vec8i:[1,4,1,""],cvPoint2fVector:[1,1,1,""],cvSize2iVector:[1,1,1,""],ptr_cvPoint2fVector:[1,1,1,""],ptr_cvPointVector:[1,1,1,""],ptr_double:[1,1,1,""],xmlNodePtrVector:[1,1,1,""]},"pagexml.DataType_bool":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_char":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_double":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_float":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_int":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_schar":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_short":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_uchar":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_ushort":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.Mat":{AUTO_STEP:[1,4,1,""],CONTINUOUS_FLAG:[1,4,1,""],DEPTH_MASK:[1,4,1,""],MAGIC_MASK:[1,4,1,""],MAGIC_VAL:[1,4,1,""],SUBMATRIX_FLAG:[1,4,1,""],TYPE_MASK:[1,4,1,""],addref:[1,2,1,""],adjustROI:[1,2,1,""],assignTo:[1,2,1,""],channels:[1,2,1,""],checkVector:[1,2,1,""],clone:[1,2,1,""],col:[1,2,1,""],colRange:[1,2,1,""],cols:[1,4,1,""],copySize:[1,2,1,""],create:[1,2,1,""],data:[1,4,1,""],dataend:[1,4,1,""],datalimit:[1,4,1,""],datastart:[1,4,1,""],deallocate:[1,2,1,""],depth:[1,2,1,""],diag:[1,2,1,""],dims:[1,4,1,""],elemSize1:[1,2,1,""],elemSize:[1,2,1,""],empty:[1,2,1,""],flags:[1,4,1,""],from_array:[1,5,1,""],isContinuous:[1,2,1,""],isSubmatrix:[1,2,1,""],locateROI:[1,2,1,""],pop_back:[1,2,1,""],ptr:[1,2,1,""],push_back:[1,2,1,""],push_back_:[1,2,1,""],release:[1,2,1,""],reserve:[1,2,1,""],reshape:[1,2,1,""],resize:[1,2,1,""],row:[1,2,1,""],rowRange:[1,2,1,""],rows:[1,4,1,""],step1:[1,2,1,""],thisown:[1,4,1,""],total:[1,2,1,""],type:[1,2,1,""]},"pagexml.Matx_AddOp":{thisown:[1,4,1,""]},"pagexml.Matx_DivOp":{thisown:[1,4,1,""]},"pagexml.Matx_MatMulOp":{thisown:[1,4,1,""]},"pagexml.Matx_MulOp":{thisown:[1,4,1,""]},"pagexml.Matx_ScaleOp":{thisown:[1,4,1,""]},"pagexml.Matx_SubOp":{thisown:[1,4,1,""]},"pagexml.Matx_TOp":{thisown:[1,4,1,""]},"pagexml.NamedImage":{direction:[1,4,1,""],id:[1,4,1,""],image:[1,4,1,""],name:[1,4,1,""],node:[1,4,1,""],rotation:[1,4,1,""],thisown:[1,4,1,""],x:[1,4,1,""],y:[1,4,1,""]},"pagexml.NamedImageVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.OGRMultiLineString_":{multipolyline:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.OGRMultiPolygon_":{multipolygon:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.PageXML":{addElem:[1,2,1,""],addGlyph:[1,2,1,""],addPage:[1,2,1,""],addTextLine:[1,2,1,""],addTextRegion:[1,2,1,""],addWord:[1,2,1,""],areIDsUnique:[1,2,1,""],clone:[1,2,1,""],closest:[1,2,1,""],computeAreas:[1,2,1,""],computeBaselineIntersectionsWeightedByArea:[1,2,1,""],computeCoordsIntersectionsWeightedByArea:[1,2,1,""],computeIntersectFactor:[1,2,1,""],computeIntersectionPercentage:[1,2,1,""],computeIntersectionPercentages:[1,2,1,""],computeIoU:[1,2,1,""],computeIoUs:[1,2,1,""],copyElem:[1,2,1,""],copyTextLinesAssignByOverlap:[1,2,1,""],count:[1,2,1,""],crop:[1,2,1,""],filter:[1,2,1,""],getAttr:[1,2,1,""],getBaselineOrientation:[1,2,1,""],getDocPtr:[1,2,1,""],getDominantBaselinesOrientation:[1,2,1,""],getFpgram:[1,2,1,""],getImageBases:[1,2,1,""],getImagesBaseDir:[1,2,1,""],getLeftRightTextContinuationGroups:[1,2,1,""],getLeftRightTopBottomReadingOrder:[1,2,1,""],getNodeName:[1,2,1,""],getOGRpolygon:[1,2,1,""],getOGRpolygonArea:[1,2,1,""],getOGRpolygons:[1,2,1,""],getOGRpolyline:[1,2,1,""],getPageHeight:[1,2,1,""],getPageImage:[1,2,1,""],getPageImageFilename:[1,2,1,""],getPageImageOrientation:[1,2,1,""],getPageNumber:[1,2,1,""],getPageWidth:[1,2,1,""],getPagesSize:[1,2,1,""],getPoints:[1,2,1,""],getPolylineLength:[1,2,1,""],getPolylineOrientation:[1,2,1,""],getPropertyValue:[1,2,1,""],getReadingDirection:[1,2,1,""],getRotation:[1,2,1,""],getTextEquiv:[1,2,1,""],getUnionOGRpolygon:[1,2,1,""],getUniqueID:[1,2,1,""],getValue:[1,2,1,""],getXheight:[1,2,1,""],getXmlFilePath:[1,2,1,""],insertElem:[1,2,1,""],intersection:[1,2,1,""],isBBox:[1,6,1,""],isPageImageLoaded:[1,2,1,""],isPolystripe:[1,2,1,""],isValid:[1,2,1,""],loadImage:[1,2,1,""],loadImages:[1,2,1,""],loadSchema:[1,2,1,""],loadXml:[1,2,1,""],loadXmlString:[1,2,1,""],moveElem:[1,2,1,""],moveElems:[1,2,1,""],multiPolygonIntersection:[1,2,1,""],multiPolylineIntersection:[1,2,1,""],newXml:[1,2,1,""],nodeIs:[1,6,1,""],parent:[1,2,1,""],pointsBBox:[1,6,1,""],pointsLimits:[1,6,1,""],pointsToOGRpolygon:[1,2,1,""],pointsToOGRpolygons:[1,2,1,""],pointsToString:[1,6,1,""],printVersions:[1,6,1,""],processEnd:[1,2,1,""],processStart:[1,2,1,""],relabelChildIDs:[1,2,1,""],relativizeImageFilename:[1,2,1,""],releaseImage:[1,2,1,""],releaseImages:[1,2,1,""],resize:[1,2,1,""],rmElem:[1,2,1,""],rmElems:[1,2,1,""],rotatePage:[1,2,1,""],select:[1,2,1,""],selectByID:[1,2,1,""],selectByOverlap:[1,2,1,""],selectNth:[1,2,1,""],setAttr:[1,2,1,""],setBaseline:[1,2,1,""],setCoords:[1,2,1,""],setCoordsBBox:[1,2,1,""],setImagesBaseDir:[1,2,1,""],setPageHeight:[1,2,1,""],setPageImageFilename:[1,2,1,""],setPageImageOrientation:[1,2,1,""],setPageWidth:[1,2,1,""],setPolystripe:[1,2,1,""],setProperty:[1,2,1,""],setReadingDirection:[1,2,1,""],setRotation:[1,2,1,""],setTextEquiv:[1,2,1,""],setValidationEnabled:[1,6,1,""],setValue:[1,2,1,""],setXmlFilePath:[1,2,1,""],simplifyIDs:[1,2,1,""],stringToPoints:[1,6,1,""],thisown:[1,4,1,""],toString:[1,2,1,""],updateLastChange:[1,2,1,""],version:[1,6,1,""],write:[1,2,1,""]},"pagexml.Range":{all:[1,6,1,""],empty:[1,2,1,""],end:[1,4,1,""],size:[1,2,1,""],start:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.SwigPyIterator":{advance:[1,2,1,""],copy:[1,2,1,""],decr:[1,2,1,""],distance:[1,2,1,""],equal:[1,2,1,""],incr:[1,2,1,""],next:[1,2,1,""],previous:[1,2,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.cvPoint2fVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.cvSize2iVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.ptr_cvPoint2fVector":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.ptr_cvPointVector":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.ptr_double":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.xmlNodePtrVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},pagexml:{PageXML:[1,1,1,""],imwrite:[1,3,1,""],pagexml:[1,0,0,"-"],set_omnius_schema:[1,3,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","classmethod","Python class method"],"6":["py","staticmethod","Python static method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:classmethod","6":"py:staticmethod"},terms:{"boolean":1,"byte":1,"char":1,"class":1,"const":1,"default":[0,1],"float":1,"function":[0,1],"import":0,"int":1,"new":1,"null":1,"return":1,"short":1,"static":1,"true":1,"void":1,IDs:1,One:0,The:[0,1],Use:1,_conf:1,_datatype_vec_double_2:1,_datatype_vec_double_3:1,_datatype_vec_double_4:1,_datatype_vec_double_6:1,_datatype_vec_float_2:1,_datatype_vec_float_3:1,_datatype_vec_float_4:1,_datatype_vec_float_6:1,_datatype_vec_int_2:1,_datatype_vec_int_3:1,_datatype_vec_int_4:1,_datatype_vec_int_6:1,_datatype_vec_int_8:1,_datatype_vec_short_2:1,_datatype_vec_short_3:1,_datatype_vec_short_4:1,_datatype_vec_uint8_t_2:1,_datatype_vec_uint8_t_3:1,_datatype_vec_uint8_t_4:1,_datatype_vec_ushort_2:1,_datatype_vec_ushort_3:1,_datatype_vec_ushort_4:1,_group_ord:1,_group_scor:1,_ipoint:1,_mat__doubl:1,_mat__float:1,_mat__int:1,_mat__short:1,_mat__uchar:1,_mat__ushort:1,_mat__vec2:1,_mat__vec2b:1,_mat__vec2d:1,_mat__vec2f:1,_mat__vec2i:1,_mat__vec2w:1,_mat__vec3:1,_mat__vec3b:1,_mat__vec3d:1,_mat__vec3f:1,_mat__vec3i:1,_mat__vec3w:1,_mat__vec4:1,_mat__vec4b:1,_mat__vec4d:1,_mat__vec4f:1,_mat__vec4i:1,_mat__vec4w:1,_matx_double_2_1:1,_matx_double_3_1:1,_matx_double_4_1:1,_matx_double_6_1:1,_matx_float_2_1:1,_matx_float_3_1:1,_matx_float_4_1:1,_matx_float_6_1:1,_matx_int_2_1:1,_matx_int_3_1:1,_matx_int_4_1:1,_matx_int_6_1:1,_matx_int_8_1:1,_matx_short_2_1:1,_matx_short_3_1:1,_matx_short_4_1:1,_matx_uint8_t_2_1:1,_matx_uint8_t_3_1:1,_matx_uint8_t_4_1:1,_matx_ushort_2_1:1,_matx_ushort_3_1:1,_matx_ushort_4_1:1,_point__doubl:1,_point__float:1,_point__int:1,_size__doubl:1,_size__float:1,_size__int:1,_vec_double_2:1,_vec_double_3:1,_vec_double_4:1,_vec_double_6:1,_vec_float_2:1,_vec_float_3:1,_vec_float_4:1,_vec_float_6:1,_vec_int_2:1,_vec_int_3:1,_vec_int_4:1,_vec_int_6:1,_vec_int_8:1,_vec_short_2:1,_vec_short_3:1,_vec_short_4:1,_vec_uint8_t_2:1,_vec_uint8_t_3:1,_vec_uint8_t_4:1,_vec_ushort_2:1,_vec_ushort_3:1,_vec_ushort_4:1,about:1,account:1,actual:1,add:[0,1],addelem:1,addglyph:1,addpag:[0,1],addref:1,addtextlin:1,addtextregion:[0,1],addword:1,adjustroi:1,advanc:1,affect:1,against:[0,1],alia:1,all:[0,1],allow:0,alpha:1,alreadi:1,also:1,angl:1,anoth:1,api:0,append:1,appropri:0,area:1,areidsuniqu:1,arg:1,arrai:1,aspect:1,assign:1,assignto:1,attribut:1,auto_step:1,automat:[0,1],avail:0,averag:1,back:1,base:1,base_nod:1,base_xpath:1,baselin:1,bdist_wheel:0,befor:1,before_id:1,before_nod:1,begin:1,below:1,between:1,bline:1,bool:1,bottom:1,bound:[0,1],box:[0,1],bugimpl:1,built:0,call:0,can:0,candid:1,cannot:0,capac:1,cast:1,chang:1,channel:1,charact:1,check:1,check_aspect_ratio:1,checkid:1,checkvector:1,child:1,classmethod:1,clear:1,clockwis:1,clone:[0,1],closest:1,col:1,colrang:1,com:0,comb_alpha:1,compar:1,compat:1,compil:0,comput:1,computearea:1,computebaselineintersectionsweightedbyarea:1,computecoordsintersectionsweightedbyarea:1,computei:1,computeintersectfactor:1,computeintersectionpercentag:1,concaten:1,conf:1,confid:[0,1],configur:0,consid:1,construct:1,contain:[0,1],content:1,context:1,continu:1,continuous_flag:1,convert:1,coord:[0,1],coordin:1,copi:[0,1],copyelem:1,copys:1,copytextlinesassignbyoverlap:1,core:0,correspond:1,count:1,count_max:1,count_start:1,counter:1,creat:1,creator:1,criteria:1,crop:1,current:1,cvpoint2fvector:1,cvsize2ivector:1,data:1,dataend:1,datalimit:1,datastart:1,datatype_bool:1,datatype_char:1,datatype_doubl:1,datatype_float:1,datatype_int:1,datatype_schar:1,datatype_short:1,datatype_uchar:1,datatype_ushort:1,datatype_vec2:1,datatype_vec2b:1,datatype_vec2d:1,datatype_vec2f:1,datatype_vec2i:1,datatype_vec2w:1,datatype_vec3:1,datatype_vec3b:1,datatype_vec3d:1,datatype_vec3f:1,datatype_vec3i:1,datatype_vec3w:1,datatype_vec4:1,datatype_vec4b:1,datatype_vec4d:1,datatype_vec4f:1,datatype_vec4i:1,datatype_vec4w:1,datatype_vec6d:1,datatype_vec6f:1,datatype_vec6i:1,datatype_vec8i:1,dbottom:1,dealloc:1,decr:1,defin:1,degre:1,densiti:1,depend:1,depth:1,depth_mask:1,descend:1,descript:1,determin:1,dev:0,diag:1,differ:1,dim:1,direct:1,directori:[0,1],disabl:1,discret:1,distanc:1,dleft:1,document:1,domin:1,doubl:1,download:0,dright:1,dtop:1,due:1,each:[0,1],eas:0,elem:1,elemchannel:1,element:1,elemid:1,elems:1,elems_coord:1,elemsize1:1,empti:1,enabl:1,encod:1,end:1,equal:1,eras:1,etc:0,example_imag:0,example_image_2:0,execut:1,exist:1,express:1,extract:[0,1],fact:1,factor:1,fake_baselin:1,fals:1,featur:1,few:0,file:1,filenam:1,filter:1,find:1,first:1,flag:1,fmt:1,fname:1,fnum:1,follow:0,format:[0,1],found:0,fpgram:1,from:1,from_arrai:1,frompoint:1,front:1,gener:1,generic_typ:1,geometri:1,get:1,get_alloc:1,getattr:1,getbaselineorient:1,getdocptr:1,getdominantbaselinesorient:1,getfpgram:1,getimagebas:1,getimagesbasedir:1,getleftrighttextcontinuationgroup:1,getleftrighttopbottomreadingord:1,getnodenam:1,getogrpolygon:1,getogrpolygonarea:1,getogrpolylin:1,getpageheight:1,getpageimag:1,getpageimagefilenam:1,getpageimageorient:1,getpagenumb:1,getpagess:1,getpagewidth:1,getpoint:1,getpolylinelength:1,getpolylineorient:1,getpropertyvalu:1,getreadingdirect:1,getrot:1,gettextequiv:1,getunionogrpolygon:1,getuniqueid:1,getvalu:1,getxheight:1,getxmlfilepath:1,git:0,github:0,given:1,glyph:1,goldmann:0,group:1,have:0,height:[0,1],highgui:0,horizont:1,http:0,identifi:1,imag:1,imagefilenam:1,imageheight:1,imageorient:1,imagewidth:1,img:1,imgbas:1,imgbasedir:1,imgcodec:0,imgh:1,imgproc:0,imgw:1,imwrit:[0,1],includ:[0,1],include_self:1,incr:1,indent:1,index:0,indic:1,info:1,inform:0,input:1,insert:1,insertelem:1,interior:1,intersect:1,invalid:1,iou:1,ipsum:0,isbbox:1,iscontinu:1,ispageimageload:1,ispolystrip:1,issubmatrix:1,isvalid:1,iter:1,its:1,itself:0,ityp:1,join:1,jpg:0,just:1,kei:[0,1],kwarg:1,last:1,lead:0,left:1,length:1,libboost:0,libgdal:0,libopencv:0,librari:1,libxml2:0,libxslt1:0,limit:1,line1_point1:1,line1_point2:1,line2_point1:1,line2_point2:1,line:1,link:0,linux_x86_64:0,list:1,load:[0,1],loadimag:1,loadschema:1,loadxml:1,loadxmlstr:1,locat:0,locateroi:1,lorem:0,lutz:0,magic_mask:1,magic_v:1,main:1,margin:1,mat1:1,mat1b:1,mat1d:1,mat1f:1,mat1i:1,mat1w:1,mat2:1,mat2b:1,mat2d:1,mat2f:1,mat2i:1,mat2w:1,mat3:1,mat3b:1,mat3d:1,mat3f:1,mat3i:1,mat3w:1,mat4:1,mat4b:1,mat4d:1,mat4f:1,mat4i:1,mat4w:1,mat:1,match:1,matx21:1,matx21b:1,matx21d:1,matx21f:1,matx21i:1,matx21w:1,matx31:1,matx31b:1,matx31d:1,matx31f:1,matx31i:1,matx31w:1,matx41:1,matx41b:1,matx41d:1,matx41f:1,matx41i:1,matx41w:1,matx61d:1,matx61f:1,matx61i:1,matx81i:1,matx_addop:1,matx_divop:1,matx_matmulop:1,matx_mulop:1,matx_scaleop:1,matx_subop:1,matx_top:1,mauricio:0,max_angle_diff:1,max_horiz_i:1,maximum:1,membership:1,might:1,min_prolong_fact:1,minimum:1,modifi:1,modul:0,move:1,moveelem:1,multipl:1,multipolygon:1,multipolygonintersect:1,multipolylin:1,multipolylineintersect:1,name:[0,1],namedimag:1,namedimagevector:1,namespac:1,nan:1,neg:1,nelem:1,newxml:[0,1],next:1,node:1,nodei:1,none:1,noth:1,num:1,number:1,numer:1,object:1,obtain:[0,1],offici:0,offset:1,offset_check:1,ofs:1,ogrmultilinestr:1,ogrmultilinestring_:1,ogrmultilinestringptr_:1,ogrmultipolygon:1,ogrmultipolygon_:1,ogrmultipolygonptr_:1,omni:0,omniu:0,onc:0,one:[0,1],onli:1,onlin:0,opaqu:1,opaque_coord:1,opencv:1,opf:0,option:1,order:1,orient:1,other:[0,1],otherwis:[0,1],output:1,outsid:1,over:1,overlap:1,overlap_thr:1,overlap_typ:1,overload:1,overrid:1,packag:0,page:1,pagecontent_omniu:0,pagefrom:1,pageimag:1,pagen:1,pagenum:1,pagexml_insert:1,pagexml_insert_append:1,pagexml_isbbox:1,pagexml_nodei:1,pagexml_overlap:1,pagexml_overlap_coords_baseline_iwa:1,pagexml_overlap_coords_iwa:1,pagexml_path:1,pagexml_pointsbbox:1,pagexml_pointslimit:1,pagexml_pointstostr:1,pagexml_printvers:1,pagexml_read_direct:1,pagexml_read_direction_ltr:1,pagexml_setvalidationen:1,pagexml_stringtopoint:1,pagexml_vers:1,pair:1,parallelogram:1,param:1,paramet:1,parent:1,pars:1,part:0,path:1,pcgt:1,per:1,percentag:1,pip3:0,pixel:1,pkgconfig:0,place:1,png:0,point2d:1,point2f:1,point2i:1,point:1,pointer:1,pointsbbox:1,pointslimit:1,pointstoogrpolygon:1,pointstostr:1,poli:1,poly1:1,poly2:1,polygon:1,polylin:1,polystrip:1,pop:1,pop_back:1,prefix:1,prepend:1,preserv:1,prevfre:1,previou:1,print:1,printvers:1,process:1,processend:1,processstart:1,prolong:1,prolong_alpha:1,properli:1,properti:1,provid:1,ptr:1,ptr_cvpoint2fvector:1,ptr_cvpointvector:1,ptr_doubl:1,push_back:1,push_back_:1,pxml:0,pypi:0,python3:0,r1_l1:0,radian:1,rang:1,ratio:1,rbegin:1,read:[0,1],rectangl:1,recurs:1,recurse_factor:1,ref:1,refer:[0,1],reg:0,rega:0,region:1,rel:1,relabel:1,relabelchildid:1,relativizeimagefilenam:1,releas:[0,1],releaseimag:1,remov:1,rend:1,replac:[0,1],repositori:0,represent:1,request:0,requir:[0,1],requirecontinu:1,reserv:1,reshap:1,resiz:1,resize_coord:1,resourc:1,respect:1,retriev:1,right:1,rmelem:1,root:1,rotat:1,rotatepag:1,round:1,row:1,rowrang:1,run:[0,1],sampl:1,save:1,schema:[0,1],schema_path:1,score:1,scratch:0,search:1,second:[0,1],see:1,segment:1,select:1,selectbyid:1,selectbyoverlap:1,selectnth:[0,1],selector:1,semi:1,separ:1,server:0,set:[0,1],set_omnius_schema:1,setattr:1,setbaselin:1,setcoord:1,setcoordsbbox:[0,1],setimagesbasedir:1,setpageheight:1,setpageimagefilenam:1,setpageimageorient:1,setpagewidth:1,setpolystrip:1,setproperti:[0,1],setreadingdirect:1,setrot:1,settextequiv:[0,1],setup:0,setuptool:0,setvalidationen:1,setvalu:1,setxmlfilepath:1,should:1,signatur:1,simplifi:1,simplifyid:1,singl:1,size2d:1,size2f:1,size2i:1,size:1,sourc:1,specif:[0,1],specifi:1,spoint:1,stamp:1,start:1,state:1,std:1,step1:1,str:1,stream:1,string:1,stringtopoint:1,stripe:1,subgroup:1,submatrix_flag:1,subon:1,subtract:1,success:1,suffix:1,swap:1,swig:0,swigpyiter:1,test:1,text:1,textequiv:1,textlin:1,textregion:1,them:1,thi:1,thisown:1,threshold:1,time:1,tool:[0,1],top:1,tostr:1,total:1,transp_xpath:1,transpar:1,two:[0,1],txt:0,type:1,type_mask:1,ubuntu:0,union:1,uniqu:1,unlink:1,unset:1,unsign:1,updat:1,update_image_orient:1,updatelastchang:1,url:0,use:1,using:1,utf:1,val:1,valid:[0,1],valu:[0,1],vec2:1,vec2b:1,vec2d:1,vec2f:1,vec2i:1,vec2w:1,vec3:1,vec3b:1,vec3d:1,vec3f:1,vec3i:1,vec3w:1,vec4:1,vec4b:1,vec4d:1,vec4f:1,vec4i:1,vec4w:1,vec6d:1,vec6f:1,vec6i:1,vec8i:1,vector:1,verbos:1,verifi:1,version:0,villega:0,weight:1,when:[0,1],where:1,whether:1,which:[0,1],whl:0,wholes:1,width:[0,1],within:0,without:1,word:1,work:0,write:[0,1],written:1,xmax:1,xmin:1,xml:1,xml_path:1,xml_string:1,xml_to_valid:1,xmldocptr:1,xmlfilepath:1,xmlnodept:1,xmlnodeptrvector:1,xpath:1,xsd:[0,1],ymax:1,ymin:1,you:0},titles:["py-pagexml: Python wrapper for the PageXML C++ library","pagexml API (version 2019.4.26)"],titleterms:{"new":0,adding:0,api:1,binari:0,build:0,committe:0,content:0,creat:0,crop:0,depend:0,disk:0,document:0,element:0,exampl:0,exist:0,file:0,from:0,imag:0,indic:0,instal:0,librari:0,modifi:0,modul:1,page:0,pagexml:[0,1],project:0,properti:0,python:0,region:0,runtim:0,save:0,simpl:0,softwar:0,sourc:0,steer:0,tabl:0,text:0,usag:0,version:1,wheel:0,wrapper:0,xml:0}}) \ No newline at end of file +Search.setIndex({docnames:["index","pagexml"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","pagexml.rst"],objects:{"":{pagexml:[1,0,0,"-"]},"pagexml.PageXML":{clone:[1,2,1,""]},"pagexml":{DataType_Vec2b:[1,4,1,""],DataType_Vec2d:[1,4,1,""],DataType_Vec2f:[1,4,1,""],DataType_Vec2i:[1,4,1,""],DataType_Vec2s:[1,4,1,""],DataType_Vec2w:[1,4,1,""],DataType_Vec3b:[1,4,1,""],DataType_Vec3d:[1,4,1,""],DataType_Vec3f:[1,4,1,""],DataType_Vec3i:[1,4,1,""],DataType_Vec3s:[1,4,1,""],DataType_Vec3w:[1,4,1,""],DataType_Vec4b:[1,4,1,""],DataType_Vec4d:[1,4,1,""],DataType_Vec4f:[1,4,1,""],DataType_Vec4i:[1,4,1,""],DataType_Vec4s:[1,4,1,""],DataType_Vec4w:[1,4,1,""],DataType_Vec6d:[1,4,1,""],DataType_Vec6f:[1,4,1,""],DataType_Vec6i:[1,4,1,""],DataType_Vec8i:[1,4,1,""],DataType_bool:[1,1,1,""],DataType_char:[1,1,1,""],DataType_double:[1,1,1,""],DataType_float:[1,1,1,""],DataType_int:[1,1,1,""],DataType_schar:[1,1,1,""],DataType_short:[1,1,1,""],DataType_uchar:[1,1,1,""],DataType_ushort:[1,1,1,""],Mat1b:[1,4,1,""],Mat1d:[1,4,1,""],Mat1f:[1,4,1,""],Mat1i:[1,4,1,""],Mat1s:[1,4,1,""],Mat1w:[1,4,1,""],Mat2b:[1,4,1,""],Mat2d:[1,4,1,""],Mat2f:[1,4,1,""],Mat2i:[1,4,1,""],Mat2s:[1,4,1,""],Mat2w:[1,4,1,""],Mat3b:[1,4,1,""],Mat3d:[1,4,1,""],Mat3f:[1,4,1,""],Mat3i:[1,4,1,""],Mat3s:[1,4,1,""],Mat3w:[1,4,1,""],Mat4b:[1,4,1,""],Mat4d:[1,4,1,""],Mat4f:[1,4,1,""],Mat4i:[1,4,1,""],Mat4s:[1,4,1,""],Mat4w:[1,4,1,""],Mat:[1,1,1,""],Matx21b:[1,4,1,""],Matx21d:[1,4,1,""],Matx21f:[1,4,1,""],Matx21i:[1,4,1,""],Matx21s:[1,4,1,""],Matx21w:[1,4,1,""],Matx31b:[1,4,1,""],Matx31d:[1,4,1,""],Matx31f:[1,4,1,""],Matx31i:[1,4,1,""],Matx31s:[1,4,1,""],Matx31w:[1,4,1,""],Matx41b:[1,4,1,""],Matx41d:[1,4,1,""],Matx41f:[1,4,1,""],Matx41i:[1,4,1,""],Matx41s:[1,4,1,""],Matx41w:[1,4,1,""],Matx61d:[1,4,1,""],Matx61f:[1,4,1,""],Matx61i:[1,4,1,""],Matx81i:[1,4,1,""],Matx_AddOp:[1,1,1,""],Matx_DivOp:[1,1,1,""],Matx_MatMulOp:[1,1,1,""],Matx_MulOp:[1,1,1,""],Matx_ScaleOp:[1,1,1,""],Matx_SubOp:[1,1,1,""],Matx_TOp:[1,1,1,""],NamedImage:[1,1,1,""],NamedImageVector:[1,1,1,""],OGRMultiLineString_:[1,1,1,""],OGRMultiPolygon_:[1,1,1,""],PageXML:[1,1,1,""],PageXML_isBBox:[1,3,1,""],PageXML_nodeIs:[1,3,1,""],PageXML_pointsBBox:[1,3,1,""],PageXML_pointsLimits:[1,3,1,""],PageXML_pointsToString:[1,3,1,""],PageXML_printVersions:[1,3,1,""],PageXML_setValidationEnabled:[1,3,1,""],PageXML_stringToPoints:[1,3,1,""],PageXML_version:[1,3,1,""],Point2d:[1,4,1,""],Point2f:[1,4,1,""],Point2i:[1,4,1,""],Point:[1,4,1,""],Range:[1,1,1,""],Size2d:[1,4,1,""],Size2f:[1,4,1,""],Size2i:[1,4,1,""],Size:[1,4,1,""],SwigPyIterator:[1,1,1,""],Vec2b:[1,4,1,""],Vec2d:[1,4,1,""],Vec2f:[1,4,1,""],Vec2i:[1,4,1,""],Vec2s:[1,4,1,""],Vec2w:[1,4,1,""],Vec3b:[1,4,1,""],Vec3d:[1,4,1,""],Vec3f:[1,4,1,""],Vec3i:[1,4,1,""],Vec3s:[1,4,1,""],Vec3w:[1,4,1,""],Vec4b:[1,4,1,""],Vec4d:[1,4,1,""],Vec4f:[1,4,1,""],Vec4i:[1,4,1,""],Vec4s:[1,4,1,""],Vec4w:[1,4,1,""],Vec6d:[1,4,1,""],Vec6f:[1,4,1,""],Vec6i:[1,4,1,""],Vec8i:[1,4,1,""],cvPoint2fVector:[1,1,1,""],cvSize2iVector:[1,1,1,""],ptr_cvPoint2fVector:[1,1,1,""],ptr_cvPointVector:[1,1,1,""],ptr_double:[1,1,1,""],xmlNodePtrVector:[1,1,1,""]},"pagexml.DataType_bool":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_char":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_double":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_float":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_int":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_schar":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_short":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_uchar":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.DataType_ushort":{channels:[1,4,1,""],fmt:[1,4,1,""],generic_type:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.Mat":{AUTO_STEP:[1,4,1,""],CONTINUOUS_FLAG:[1,4,1,""],DEPTH_MASK:[1,4,1,""],MAGIC_MASK:[1,4,1,""],MAGIC_VAL:[1,4,1,""],SUBMATRIX_FLAG:[1,4,1,""],TYPE_MASK:[1,4,1,""],addref:[1,2,1,""],adjustROI:[1,2,1,""],assignTo:[1,2,1,""],channels:[1,2,1,""],checkVector:[1,2,1,""],clone:[1,2,1,""],col:[1,2,1,""],colRange:[1,2,1,""],cols:[1,4,1,""],copySize:[1,2,1,""],create:[1,2,1,""],data:[1,4,1,""],dataend:[1,4,1,""],datalimit:[1,4,1,""],datastart:[1,4,1,""],deallocate:[1,2,1,""],depth:[1,2,1,""],diag:[1,2,1,""],dims:[1,4,1,""],elemSize1:[1,2,1,""],elemSize:[1,2,1,""],empty:[1,2,1,""],flags:[1,4,1,""],from_array:[1,5,1,""],isContinuous:[1,2,1,""],isSubmatrix:[1,2,1,""],locateROI:[1,2,1,""],pop_back:[1,2,1,""],ptr:[1,2,1,""],push_back:[1,2,1,""],push_back_:[1,2,1,""],release:[1,2,1,""],reserve:[1,2,1,""],reshape:[1,2,1,""],resize:[1,2,1,""],row:[1,2,1,""],rowRange:[1,2,1,""],rows:[1,4,1,""],step1:[1,2,1,""],thisown:[1,4,1,""],total:[1,2,1,""],type:[1,2,1,""]},"pagexml.Matx_AddOp":{thisown:[1,4,1,""]},"pagexml.Matx_DivOp":{thisown:[1,4,1,""]},"pagexml.Matx_MatMulOp":{thisown:[1,4,1,""]},"pagexml.Matx_MulOp":{thisown:[1,4,1,""]},"pagexml.Matx_ScaleOp":{thisown:[1,4,1,""]},"pagexml.Matx_SubOp":{thisown:[1,4,1,""]},"pagexml.Matx_TOp":{thisown:[1,4,1,""]},"pagexml.NamedImage":{direction:[1,4,1,""],id:[1,4,1,""],image:[1,4,1,""],name:[1,4,1,""],node:[1,4,1,""],rotation:[1,4,1,""],thisown:[1,4,1,""],x:[1,4,1,""],y:[1,4,1,""]},"pagexml.NamedImageVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.OGRMultiLineString_":{multipolyline:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.OGRMultiPolygon_":{multipolygon:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.PageXML":{addElem:[1,2,1,""],addGlyph:[1,2,1,""],addGroup:[1,2,1,""],addPage:[1,2,1,""],addTextLine:[1,2,1,""],addTextRegion:[1,2,1,""],addToGroup:[1,2,1,""],addWord:[1,2,1,""],areIDsUnique:[1,2,1,""],clone:[1,2,1,""],closest:[1,2,1,""],computeAreas:[1,2,1,""],computeBaselineIntersectionsWeightedByArea:[1,2,1,""],computeCoordsIntersectionsWeightedByArea:[1,2,1,""],computeIntersectFactor:[1,2,1,""],computeIntersectionPercentage:[1,2,1,""],computeIntersectionPercentages:[1,2,1,""],computeIoU:[1,2,1,""],computeIoUs:[1,2,1,""],copyElem:[1,2,1,""],copyTextLinesAssignByOverlap:[1,2,1,""],count:[1,2,1,""],crop:[1,2,1,""],filter:[1,2,1,""],getAttr:[1,2,1,""],getBaselineOrientation:[1,2,1,""],getDocPtr:[1,2,1,""],getDominantBaselinesOrientation:[1,2,1,""],getFpgram:[1,2,1,""],getImageBases:[1,2,1,""],getImagesBaseDir:[1,2,1,""],getLeftRightTextContinuationGroups:[1,2,1,""],getLeftRightTopBottomReadingOrder:[1,2,1,""],getNodeName:[1,2,1,""],getOGRpolygon:[1,2,1,""],getOGRpolygonArea:[1,2,1,""],getOGRpolygons:[1,2,1,""],getOGRpolyline:[1,2,1,""],getPageHeight:[1,2,1,""],getPageImage:[1,2,1,""],getPageImageFilename:[1,2,1,""],getPageImageOrientation:[1,2,1,""],getPageNumber:[1,2,1,""],getPageWidth:[1,2,1,""],getPagesSize:[1,2,1,""],getPoints:[1,2,1,""],getPolylineLength:[1,2,1,""],getPolylineOrientation:[1,2,1,""],getPropertyValue:[1,2,1,""],getReadingDirection:[1,2,1,""],getRotation:[1,2,1,""],getTextEquiv:[1,2,1,""],getUnionOGRpolygon:[1,2,1,""],getUniqueID:[1,2,1,""],getValue:[1,2,1,""],getXheight:[1,2,1,""],getXmlFilePath:[1,2,1,""],insertElem:[1,2,1,""],intersection:[1,2,1,""],isBBox:[1,6,1,""],isPageImageLoaded:[1,2,1,""],isPolystripe:[1,2,1,""],isValid:[1,2,1,""],loadImage:[1,2,1,""],loadImages:[1,2,1,""],loadSchema:[1,2,1,""],loadXml:[1,2,1,""],loadXmlString:[1,2,1,""],moveElem:[1,2,1,""],moveElems:[1,2,1,""],multiPolygonIntersection:[1,2,1,""],multiPolylineIntersection:[1,2,1,""],newXml:[1,2,1,""],nodeIs:[1,6,1,""],parent:[1,2,1,""],pointsBBox:[1,6,1,""],pointsLimits:[1,6,1,""],pointsToOGRpolygon:[1,2,1,""],pointsToOGRpolygons:[1,2,1,""],pointsToString:[1,6,1,""],printVersions:[1,6,1,""],processEnd:[1,2,1,""],processStart:[1,2,1,""],relabelChildIDs:[1,2,1,""],relativizeImageFilename:[1,2,1,""],releaseImage:[1,2,1,""],releaseImages:[1,2,1,""],resize:[1,2,1,""],rmElem:[1,2,1,""],rmElems:[1,2,1,""],rotatePage:[1,2,1,""],select:[1,2,1,""],selectByID:[1,2,1,""],selectByOverlap:[1,2,1,""],selectGroupElements:[1,2,1,""],selectNth:[1,2,1,""],setAttr:[1,2,1,""],setBaseline:[1,2,1,""],setCoords:[1,2,1,""],setCoordsBBox:[1,2,1,""],setImagesBaseDir:[1,2,1,""],setPageHeight:[1,2,1,""],setPageImageFilename:[1,2,1,""],setPageImageOrientation:[1,2,1,""],setPageWidth:[1,2,1,""],setPolystripe:[1,2,1,""],setProperty:[1,2,1,""],setReadingDirection:[1,2,1,""],setRotation:[1,2,1,""],setTextEquiv:[1,2,1,""],setValidationEnabled:[1,6,1,""],setValue:[1,2,1,""],setXmlFilePath:[1,2,1,""],simplifyIDs:[1,2,1,""],stringToPoints:[1,6,1,""],thisown:[1,4,1,""],toString:[1,2,1,""],updateLastChange:[1,2,1,""],version:[1,6,1,""],write:[1,2,1,""]},"pagexml.Range":{all:[1,6,1,""],empty:[1,2,1,""],end:[1,4,1,""],size:[1,2,1,""],start:[1,4,1,""],thisown:[1,4,1,""]},"pagexml.SwigPyIterator":{advance:[1,2,1,""],copy:[1,2,1,""],decr:[1,2,1,""],distance:[1,2,1,""],equal:[1,2,1,""],incr:[1,2,1,""],next:[1,2,1,""],previous:[1,2,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.cvPoint2fVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.cvSize2iVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},"pagexml.ptr_cvPoint2fVector":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.ptr_cvPointVector":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.ptr_double":{assign:[1,2,1,""],cast:[1,2,1,""],frompointer:[1,6,1,""],thisown:[1,4,1,""],value:[1,2,1,""]},"pagexml.xmlNodePtrVector":{append:[1,2,1,""],assign:[1,2,1,""],back:[1,2,1,""],begin:[1,2,1,""],capacity:[1,2,1,""],clear:[1,2,1,""],empty:[1,2,1,""],end:[1,2,1,""],erase:[1,2,1,""],front:[1,2,1,""],get_allocator:[1,2,1,""],insert:[1,2,1,""],iterator:[1,2,1,""],pop:[1,2,1,""],pop_back:[1,2,1,""],push_back:[1,2,1,""],rbegin:[1,2,1,""],rend:[1,2,1,""],reserve:[1,2,1,""],resize:[1,2,1,""],size:[1,2,1,""],swap:[1,2,1,""],thisown:[1,4,1,""]},pagexml:{PageXML:[1,1,1,""],imwrite:[1,3,1,""],pagexml:[1,0,0,"-"],set_omnius_schema:[1,3,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","classmethod","Python class method"],"6":["py","staticmethod","Python static method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:classmethod","6":"py:staticmethod"},terms:{"boolean":1,"byte":1,"char":1,"class":1,"const":1,"default":[0,1],"float":1,"function":[0,1],"import":0,"int":1,"new":1,"null":1,"return":1,"short":1,"static":1,"true":1,"void":1,IDs:1,One:0,The:[0,1],Use:1,_conf:1,_datatype_vec_double_2:1,_datatype_vec_double_3:1,_datatype_vec_double_4:1,_datatype_vec_double_6:1,_datatype_vec_float_2:1,_datatype_vec_float_3:1,_datatype_vec_float_4:1,_datatype_vec_float_6:1,_datatype_vec_int_2:1,_datatype_vec_int_3:1,_datatype_vec_int_4:1,_datatype_vec_int_6:1,_datatype_vec_int_8:1,_datatype_vec_short_2:1,_datatype_vec_short_3:1,_datatype_vec_short_4:1,_datatype_vec_uint8_t_2:1,_datatype_vec_uint8_t_3:1,_datatype_vec_uint8_t_4:1,_datatype_vec_ushort_2:1,_datatype_vec_ushort_3:1,_datatype_vec_ushort_4:1,_group_ord:1,_group_scor:1,_ipoint:1,_mat__doubl:1,_mat__float:1,_mat__int:1,_mat__short:1,_mat__uchar:1,_mat__ushort:1,_mat__vec2:1,_mat__vec2b:1,_mat__vec2d:1,_mat__vec2f:1,_mat__vec2i:1,_mat__vec2w:1,_mat__vec3:1,_mat__vec3b:1,_mat__vec3d:1,_mat__vec3f:1,_mat__vec3i:1,_mat__vec3w:1,_mat__vec4:1,_mat__vec4b:1,_mat__vec4d:1,_mat__vec4f:1,_mat__vec4i:1,_mat__vec4w:1,_matx_double_2_1:1,_matx_double_3_1:1,_matx_double_4_1:1,_matx_double_6_1:1,_matx_float_2_1:1,_matx_float_3_1:1,_matx_float_4_1:1,_matx_float_6_1:1,_matx_int_2_1:1,_matx_int_3_1:1,_matx_int_4_1:1,_matx_int_6_1:1,_matx_int_8_1:1,_matx_short_2_1:1,_matx_short_3_1:1,_matx_short_4_1:1,_matx_uint8_t_2_1:1,_matx_uint8_t_3_1:1,_matx_uint8_t_4_1:1,_matx_ushort_2_1:1,_matx_ushort_3_1:1,_matx_ushort_4_1:1,_point__doubl:1,_point__float:1,_point__int:1,_size__doubl:1,_size__float:1,_size__int:1,_vec_double_2:1,_vec_double_3:1,_vec_double_4:1,_vec_double_6:1,_vec_float_2:1,_vec_float_3:1,_vec_float_4:1,_vec_float_6:1,_vec_int_2:1,_vec_int_3:1,_vec_int_4:1,_vec_int_6:1,_vec_int_8:1,_vec_short_2:1,_vec_short_3:1,_vec_short_4:1,_vec_uint8_t_2:1,_vec_uint8_t_3:1,_vec_uint8_t_4:1,_vec_ushort_2:1,_vec_ushort_3:1,_vec_ushort_4:1,about:1,account:1,actual:1,add:[0,1],added:1,addelem:1,addglyph:1,addgroup:1,addpag:[0,1],addref:1,addtextlin:1,addtextregion:[0,1],addtogroup:1,addword:1,adjustroi:1,advanc:1,affect:1,against:[0,1],alia:1,all:[0,1],allow:0,alpha:1,alreadi:1,also:1,angl:1,anoth:1,api:0,append:1,appropri:0,area:1,areidsuniqu:1,arg:1,arrai:1,aspect:1,assign:1,assignto:1,attribut:1,auto_step:1,automat:[0,1],avail:0,averag:1,back:1,base:1,base_nod:1,base_xpath:1,baselin:1,bdist_wheel:0,befor:1,before_id:1,before_nod:1,begin:1,below:1,between:1,bline:1,bool:1,bottom:1,bound:[0,1],box:[0,1],bugimpl:1,built:0,call:0,can:0,candid:1,cannot:0,capac:1,cast:1,chang:1,channel:1,charact:1,check:1,check_aspect_ratio:1,checkid:1,checkvector:1,child:1,classmethod:1,clear:1,clockwis:1,clone:[0,1],closest:1,col:1,colrang:1,com:0,comb_alpha:1,compar:1,compat:1,compil:0,comput:1,computearea:1,computebaselineintersectionsweightedbyarea:1,computecoordsintersectionsweightedbyarea:1,computei:1,computeintersectfactor:1,computeintersectionpercentag:1,concaten:1,conf:1,confid:[0,1],configur:0,consid:1,construct:1,contain:[0,1],content:1,context:1,continu:1,continuous_flag:1,convert:1,coord:[0,1],coordin:1,copi:[0,1],copyelem:1,copys:1,copytextlinesassignbyoverlap:1,core:0,correspond:1,count:1,count_max:1,count_start:1,counter:1,creat:1,creator:1,criteria:1,crop:1,current:1,cvpoint2fvector:1,cvsize2ivector:1,data:1,dataend:1,datalimit:1,datastart:1,datatype_bool:1,datatype_char:1,datatype_doubl:1,datatype_float:1,datatype_int:1,datatype_schar:1,datatype_short:1,datatype_uchar:1,datatype_ushort:1,datatype_vec2:1,datatype_vec2b:1,datatype_vec2d:1,datatype_vec2f:1,datatype_vec2i:1,datatype_vec2w:1,datatype_vec3:1,datatype_vec3b:1,datatype_vec3d:1,datatype_vec3f:1,datatype_vec3i:1,datatype_vec3w:1,datatype_vec4:1,datatype_vec4b:1,datatype_vec4d:1,datatype_vec4f:1,datatype_vec4i:1,datatype_vec4w:1,datatype_vec6d:1,datatype_vec6f:1,datatype_vec6i:1,datatype_vec8i:1,dbottom:1,dealloc:1,decr:1,defin:1,degre:1,densiti:1,depend:1,depth:1,depth_mask:1,descend:1,descript:1,determin:1,dev:0,diag:1,differ:1,dim:1,direct:1,directori:[0,1],disabl:1,discret:1,distanc:1,dleft:1,document:1,domin:1,doubl:1,download:0,dright:1,dtop:1,due:1,each:[0,1],eas:0,elem:1,elemchannel:1,element:1,elemid:1,elems:1,elems_coord:1,elemsize1:1,empti:1,enabl:1,encod:1,end:1,equal:1,eras:1,etc:0,example_imag:0,example_image_2:0,execut:1,exist:1,express:1,extract:[0,1],fact:1,factor:1,fake_baselin:1,fals:1,featur:1,few:0,file:1,filenam:1,filter:1,find:1,first:1,flag:1,fmt:1,fname:1,fnum:1,follow:0,format:[0,1],found:0,fpgram:1,from:1,from_arrai:1,frompoint:1,front:1,gener:1,generic_typ:1,geometri:1,get:1,get_alloc:1,getattr:1,getbaselineorient:1,getdocptr:1,getdominantbaselinesorient:1,getfpgram:1,getimagebas:1,getimagesbasedir:1,getleftrighttextcontinuationgroup:1,getleftrighttopbottomreadingord:1,getnodenam:1,getogrpolygon:1,getogrpolygonarea:1,getogrpolylin:1,getpageheight:1,getpageimag:1,getpageimagefilenam:1,getpageimageorient:1,getpagenumb:1,getpagess:1,getpagewidth:1,getpoint:1,getpolylinelength:1,getpolylineorient:1,getpropertyvalu:1,getreadingdirect:1,getrot:1,gettextequiv:1,getunionogrpolygon:1,getuniqueid:1,getvalu:1,getxheight:1,getxmlfilepath:1,git:0,github:0,given:1,glyph:1,goldmann:0,group:1,have:[0,1],height:[0,1],highgui:0,horizont:1,http:0,identifi:1,imag:1,imagefilenam:1,imageheight:1,imageorient:1,imagewidth:1,img:1,imgbas:1,imgbasedir:1,imgcodec:0,imgh:1,imgproc:0,imgw:1,imwrit:[0,1],includ:[0,1],include_self:1,incr:1,indent:1,index:0,indic:1,info:1,inform:0,input:1,insert:1,insertelem:1,interior:1,intersect:1,invalid:1,iou:1,ipsum:0,isbbox:1,iscontinu:1,ispageimageload:1,ispolystrip:1,issubmatrix:1,isvalid:1,iter:1,its:1,itself:0,ityp:1,join:1,jpg:0,just:1,kei:[0,1],kwarg:1,last:1,lead:0,left:1,length:1,libboost:0,libgdal:0,libopencv:0,librari:1,libxml2:0,libxslt1:0,limit:1,line1_point1:1,line1_point2:1,line2_point1:1,line2_point2:1,line:1,link:0,linux_x86_64:0,list:1,load:[0,1],loadimag:1,loadschema:1,loadxml:1,loadxmlstr:1,locat:0,locateroi:1,lorem:0,lutz:0,magic_mask:1,magic_v:1,main:1,margin:1,mat1:1,mat1b:1,mat1d:1,mat1f:1,mat1i:1,mat1w:1,mat2:1,mat2b:1,mat2d:1,mat2f:1,mat2i:1,mat2w:1,mat3:1,mat3b:1,mat3d:1,mat3f:1,mat3i:1,mat3w:1,mat4:1,mat4b:1,mat4d:1,mat4f:1,mat4i:1,mat4w:1,mat:1,match:1,matx21:1,matx21b:1,matx21d:1,matx21f:1,matx21i:1,matx21w:1,matx31:1,matx31b:1,matx31d:1,matx31f:1,matx31i:1,matx31w:1,matx41:1,matx41b:1,matx41d:1,matx41f:1,matx41i:1,matx41w:1,matx61d:1,matx61f:1,matx61i:1,matx81i:1,matx_addop:1,matx_divop:1,matx_matmulop:1,matx_mulop:1,matx_scaleop:1,matx_subop:1,matx_top:1,mauricio:0,max_angle_diff:1,max_horiz_i:1,maximum:1,member:1,membership:1,might:1,min_prolong_fact:1,minimum:1,modifi:1,modul:0,move:1,moveelem:1,multipl:1,multipolygon:1,multipolygonintersect:1,multipolylin:1,multipolylineintersect:1,must:1,name:[0,1],namedimag:1,namedimagevector:1,namespac:1,nan:1,neg:1,nelem:1,newxml:[0,1],next:1,node:1,nodei:1,none:1,noth:1,num:1,number:1,numer:1,object:1,obtain:[0,1],offici:0,offset:1,offset_check:1,ofs:1,ogrmultilinestr:1,ogrmultilinestring_:1,ogrmultilinestringptr_:1,ogrmultipolygon:1,ogrmultipolygon_:1,ogrmultipolygonptr_:1,omni:0,omniu:0,onc:0,one:[0,1],onli:1,onlin:0,opaqu:1,opaque_coord:1,opencv:1,opf:0,option:1,order:1,orient:1,other:[0,1],otherwis:[0,1],output:1,outsid:1,over:1,overlap:1,overlap_thr:1,overlap_typ:1,overload:1,overrid:1,packag:0,page:1,pagecontent_omniu:0,pagefrom:1,pageimag:1,pagen:1,pagenum:1,pagexml_insert:1,pagexml_insert_append:1,pagexml_isbbox:1,pagexml_nodei:1,pagexml_overlap:1,pagexml_overlap_coords_baseline_iwa:1,pagexml_overlap_coords_iwa:1,pagexml_path:1,pagexml_pointsbbox:1,pagexml_pointslimit:1,pagexml_pointstostr:1,pagexml_printvers:1,pagexml_read_direct:1,pagexml_read_direction_ltr:1,pagexml_setvalidationen:1,pagexml_stringtopoint:1,pagexml_vers:1,pair:1,parallelogram:1,param:1,paramet:1,parent:1,pars:1,part:0,path:1,pcgt:1,per:1,percentag:1,pip3:0,pixel:1,pkgconfig:0,place:1,png:0,point2d:1,point2f:1,point2i:1,point:1,pointer:1,pointsbbox:1,pointslimit:1,pointstoogrpolygon:1,pointstostr:1,poli:1,poly1:1,poly2:1,polygon:1,polylin:1,polystrip:1,pop:1,pop_back:1,prefix:1,prepend:1,preserv:1,prevfre:1,previou:1,print:1,printvers:1,process:1,processend:1,processstart:1,prolong:1,prolong_alpha:1,properli:1,properti:1,provid:1,ptr:1,ptr_cvpoint2fvector:1,ptr_cvpointvector:1,ptr_doubl:1,push_back:1,push_back_:1,pxml:0,pypi:0,python3:0,r1_l1:0,radian:1,rang:1,ratio:1,rbegin:1,read:[0,1],rectangl:1,recurs:1,recurse_factor:1,ref:1,refer:[0,1],referenc:1,reg:0,rega:0,region:1,rel:1,relabel:1,relabelchildid:1,relativizeimagefilenam:1,releas:[0,1],releaseimag:1,remov:1,rend:1,replac:[0,1],repositori:0,represent:1,request:0,requir:[0,1],requirecontinu:1,reserv:1,reshap:1,resiz:1,resize_coord:1,resourc:1,respect:1,retriev:1,right:1,rmelem:1,root:1,rotat:1,rotatepag:1,round:1,row:1,rowrang:1,run:[0,1],sampl:1,save:1,schema:[0,1],schema_path:1,score:1,scratch:0,search:1,second:[0,1],see:1,segment:1,select:1,selectbyid:1,selectbyoverlap:1,selectgroupel:1,selectnth:[0,1],selector:1,semi:1,separ:1,server:0,set:[0,1],set_omnius_schema:1,setattr:1,setbaselin:1,setcoord:1,setcoordsbbox:[0,1],setimagesbasedir:1,setpageheight:1,setpageimagefilenam:1,setpageimageorient:1,setpagewidth:1,setpolystrip:1,setproperti:[0,1],setreadingdirect:1,setrot:1,settextequiv:[0,1],setup:0,setuptool:0,setvalidationen:1,setvalu:1,setxmlfilepath:1,should:1,signatur:1,simplifi:1,simplifyid:1,singl:1,size2d:1,size2f:1,size2i:1,size:1,sourc:1,specif:[0,1],specifi:1,spoint:1,stamp:1,start:1,state:1,std:1,step1:1,str:1,stream:1,string:1,stringtopoint:1,stripe:1,subgroup:1,submatrix_flag:1,subon:1,subtract:1,success:1,suffix:1,swap:1,swig:0,swigpyiter:1,test:1,text:1,textequiv:1,textlin:1,textregion:1,them:1,thi:1,thisown:1,threshold:1,time:1,tool:[0,1],top:1,tostr:1,total:1,transp_xpath:1,transpar:1,two:[0,1],txt:0,type:1,type_mask:1,ubuntu:0,union:1,uniqu:1,unlink:1,unset:1,unsign:1,updat:1,update_image_orient:1,updatelastchang:1,url:0,use:1,using:1,utf:1,val:1,valid:[0,1],valu:[0,1],vec2:1,vec2b:1,vec2d:1,vec2f:1,vec2i:1,vec2w:1,vec3:1,vec3b:1,vec3d:1,vec3f:1,vec3i:1,vec3w:1,vec4:1,vec4b:1,vec4d:1,vec4f:1,vec4i:1,vec4w:1,vec6d:1,vec6f:1,vec6i:1,vec8i:1,vector:1,verbos:1,verifi:1,version:0,villega:0,weight:1,when:[0,1],where:1,whether:1,which:[0,1],whl:0,wholes:1,width:[0,1],within:0,without:1,word:1,work:0,write:[0,1],written:1,xmax:1,xmin:1,xml:1,xml_path:1,xml_string:1,xml_to_valid:1,xmldocptr:1,xmlfilepath:1,xmlnodept:1,xmlnodeptrvector:1,xpath:1,xsd:[0,1],ymax:1,ymin:1,you:0},titles:["py-pagexml: Python wrapper for the PageXML C++ library","pagexml API (version 2019.5.3)"],titleterms:{"new":0,adding:0,api:1,binari:0,build:0,committe:0,content:0,creat:0,crop:0,depend:0,disk:0,document:0,element:0,exampl:0,exist:0,file:0,from:0,imag:0,indic:0,instal:0,librari:0,modifi:0,modul:1,page:0,pagexml:[0,1],project:0,properti:0,python:0,region:0,runtim:0,save:0,simpl:0,softwar:0,sourc:0,steer:0,tabl:0,text:0,usag:0,version:1,wheel:0,wrapper:0,xml:0}}) \ No newline at end of file diff --git a/lib/PageXML.cc b/lib/PageXML.cc index 8200ffa..78d2d57 100644 --- a/lib/PageXML.cc +++ b/lib/PageXML.cc @@ -1,7 +1,7 @@ /** * Class for input, output and processing of Page XML files and referenced image. * - * @version $Version: 2019.04.26$ + * @version $Version: 2019.05.03$ * @copyright Copyright (c) 2016-present, Mauricio Villegas * @license MIT License */ @@ -47,7 +47,7 @@ bool validation_enabled = true; /// Class version /// ///////////////////// -static char class_version[] = "Version: 2019.04.26"; +static char class_version[] = "Version: 2019.05.03"; /** * Returns the class version. @@ -5110,6 +5110,110 @@ std::pair, std::vector > PageXML::getLeftRightTopBottomRea return std::pair, std::vector >(reading_order, subgroup_lengths); } +/** + * Adds a Group to the PcGts node. + * + * @param id ID for Page, if NULL it is selected automatically. + * @param elems Elements to add (must have id attributes). + * @param before_node If !=NULL inserts it before the provided Group node. + * @return Pointer to created element. + */ +xmlNodePt PageXML::addGroup( const char* id, std::vector elems, xmlNodePt before_node ) { + xmlNodePt group; + + std::string gid = id == NULL ? getUniqueID("gr") : std::string(id); + + if ( before_node != NULL ) { + if ( ! nodeIs( before_node, "Group" ) ) { + throw_runtime_error( "PageXML.addGroup: before_node is required to be a Group" ); + return NULL; + } + group = addElem( "Group", gid.c_str(), before_node, PAGEXML_INSERT_PREVSIB, true ); + } + else { + xmlNodePt pcgts = selectNth("/_:PcGts",0); + if ( ! pcgts ) { + throw_runtime_error( "PageXML.addGroup: unable to select PcGts node" ); + return NULL; + } + group = addElem( "Group", gid.c_str(), pcgts, PAGEXML_INSERT_APPEND, true ); + } + + if ( elems.size() > 0 ) + addToGroup( group, elems ); + + return group; +} + +/** + * Adds elements to a Group. + * + * @param group Pointer to group node. + * @param elems Elements to add (must have id attributes). + * @return Number of elements added. + */ +int PageXML::addToGroup( xmlNodePt group, std::vector elems ) { + if ( ! nodeIs( group, "Group" ) ) { + throw_runtime_error( "PageXML.addToGroup: expected pointer to be of a Group element" ); + return 0; + } + + std::unordered_set member_ids; + std::vector members = select("_:Member", group); + for ( int m=0; m<(int)members.size(); m++ ) + member_ids.insert(getAttr(members[m], "ref")); + + int num = 0; + for ( int n=0; n<(int)elems.size(); n++ ) { + std::string elem_id = getAttr(elems[n], "id"); + if ( elem_id.empty() ) { + throw_runtime_error( "PageXML.addToGroup: elements are required to have an id attribute, none found for element %d", n+1 ); + return 0; + } + + if ( member_ids.find(elem_id) != member_ids.end() ) + continue; + + xmlNodePt member = addElem( "Member", NULL, group, PAGEXML_INSERT_APPEND ); + setAttr(member, "ref", elem_id.c_str()); + member_ids.insert(elem_id); + + num++; + } + + return num; +} + +/** + * Selects all elements referenced by a Group. + * + * @param group Pointer to group node. + * @param recurse Whether to recurse into group members which are groups. + * @return Number of elements added. + */ +std::vector PageXML::selectGroupElements( xmlNodePt group, bool recurse ) { + std::vector elems; + + if ( ! nodeIs( group, "Group" ) ) { + throw_runtime_error( "PageXML.selectGroupElements: expected pointer to be of a Group element" ); + return elems; + } + + std::vector members = select("_:Member", group); + for ( int n=0; n<(int)members.size(); n++ ) { + if ( recurse && nodeIs(members[n], "Group") ) { + std::vector subelems = selectGroupElements(members[n], true); + elems.insert(elems.end(), subelems.begin(), subelems.end()); + } + else { + std::string mid = getAttr(members[n], "ref"); + elems.push_back( selectByID(mid.c_str()) ); + } + } + + return elems; +} + /** * Returns the XML document pointer. */ diff --git a/lib/PageXML.h b/lib/PageXML.h index 31aef43..cf67be3 100644 --- a/lib/PageXML.h +++ b/lib/PageXML.h @@ -1,7 +1,7 @@ /** * Header file for the PageXML class * - * @version $Version: 2019.04.26$ + * @version $Version: 2019.05.03$ * @copyright Copyright (c) 2016-present, Mauricio Villegas * @license MIT License */ @@ -299,6 +299,9 @@ class PageXML { #endif int getLeftRightTextContinuationGroups( std::vector elems, std::vector >& _group_order, std::vector& _group_score, double max_angle_diff = 25*M_PI/180, double max_horiz_iou = 0.1, double min_prolong_fact = 0.5, double prolong_alpha = 0.8, bool fake_baseline = false, double recurse_factor = 0.9 ); std::pair, std::vector > getLeftRightTopBottomReadingOrder( std::vector elems, double max_angle_diff = 25*M_PI/180, double max_horiz_iou = 0.1, double min_prolong_fact = 0.5, double prolong_alpha = 0.8, bool fake_baseline = false, double recurse_factor = 0.9 ); + xmlNodePt addGroup( const char* id = NULL, std::vector elems = std::vector(), xmlNodePt before_node = NULL ); + int addToGroup( xmlNodePt group, std::vector elems ); + std::vector selectGroupElements( xmlNodePt group, bool recurse = true ); xmlDocPtr getDocPtr(); private: xmlNsPtr rpagens = NULL; diff --git a/py-pagexml/pagexml/PageXML_doxy2swig.i b/py-pagexml/pagexml/PageXML_doxy2swig.i index 1943a7a..36e2f96 100644 --- a/py-pagexml/pagexml/PageXML_doxy2swig.i +++ b/py-pagexml/pagexml/PageXML_doxy2swig.i @@ -93,6 +93,19 @@ Returns: "; +%feature("docstring") PageXML::addGroup " +Adds a Group to the PcGts node. + +Arguments: + id (const char *): ID for Page, if NULL it is selected automatically. + elems (std::vector< xmlNodePt >): Elements to add (must have id attributes). + before_node (xmlNodePt): If !=NULL inserts it before the provided Group node. + +Returns: + xmlNodePt: Pointer to created element. + +"; + %feature("docstring") PageXML::addPage " Overloaded function with 2 signatures. @@ -198,6 +211,18 @@ Returns: "; +%feature("docstring") PageXML::addToGroup " +Adds elements to a Group. + +Arguments: + group (xmlNodePt): Pointer to group node. + elems (std::vector< xmlNodePt >): Elements to add (must have id attributes). + +Returns: + int: Number of elements added. + +"; + %feature("docstring") PageXML::addWord " Overloaded function with 2 signatures. @@ -1681,6 +1706,18 @@ Returns: "; +%feature("docstring") PageXML::selectGroupElements " +Selects all elements referenced by a Group. + +Arguments: + group (xmlNodePt): Pointer to group node. + recurse (bool): Whether to recurse into group members which are groups. + +Returns: + std::vector< xmlNodePt >: Number of elements added. + +"; + %feature("docstring") PageXML::selectNth " Overloaded function with 2 signatures.