├── .DS_Store
├── .gitignore
├── .ipynb_checkpoints
├── binary_to_trimap-checkpoint.ipynb
└── trimap_tutorial-checkpoint.ipynb
├── LICENSE
├── README.md
├── __pycache__
├── trimap_generate.cpython-36.pyc
└── trimap_module.cpython-36.pyc
├── archive
├── binary_to_trimap.ipynb
├── trimap_module_20190519.py
└── trimap_module_20190811.py
├── assets
├── .DS_Store
├── contours
│ ├── point_mask_0.txt
│ ├── point_mask_1.txt
│ ├── point_mask_10.txt
│ ├── point_mask_11.txt
│ ├── point_mask_12 2.txt
│ ├── point_mask_12.txt
│ ├── point_mask_13 2.txt
│ ├── point_mask_13.txt
│ ├── point_mask_14 2.txt
│ ├── point_mask_14.txt
│ ├── point_mask_15 2.txt
│ ├── point_mask_15.txt
│ ├── point_mask_16 2.txt
│ ├── point_mask_16.txt
│ ├── point_mask_17 2.txt
│ ├── point_mask_17.txt
│ ├── point_mask_18 2.txt
│ ├── point_mask_18.txt
│ ├── point_mask_19 2.txt
│ ├── point_mask_19.txt
│ ├── point_mask_2 2.txt
│ ├── point_mask_2.txt
│ ├── point_mask_20 2.txt
│ ├── point_mask_20.txt
│ ├── point_mask_21 2.txt
│ ├── point_mask_21.txt
│ ├── point_mask_22 2.txt
│ ├── point_mask_22.txt
│ ├── point_mask_23 2.txt
│ ├── point_mask_23.txt
│ ├── point_mask_24 2.txt
│ ├── point_mask_24.txt
│ ├── point_mask_25 2.txt
│ ├── point_mask_25.txt
│ ├── point_mask_26 2.txt
│ ├── point_mask_26.txt
│ ├── point_mask_27 2.txt
│ ├── point_mask_27.txt
│ ├── point_mask_28 2.txt
│ ├── point_mask_28.txt
│ ├── point_mask_29 2.txt
│ ├── point_mask_29.txt
│ ├── point_mask_3 2.txt
│ ├── point_mask_3.txt
│ ├── point_mask_30 2.txt
│ ├── point_mask_30.txt
│ ├── point_mask_31 2.txt
│ ├── point_mask_31.txt
│ ├── point_mask_32 2.txt
│ ├── point_mask_32.txt
│ ├── point_mask_33 2.txt
│ ├── point_mask_33.txt
│ ├── point_mask_34 2.txt
│ ├── point_mask_34.txt
│ ├── point_mask_35 2.txt
│ ├── point_mask_35.txt
│ ├── point_mask_36 2.txt
│ ├── point_mask_36.txt
│ ├── point_mask_37 2.txt
│ ├── point_mask_37.txt
│ ├── point_mask_38 2.txt
│ ├── point_mask_38.txt
│ ├── point_mask_39 2.txt
│ ├── point_mask_39.txt
│ ├── point_mask_4 2.txt
│ ├── point_mask_4.txt
│ ├── point_mask_40 2.txt
│ ├── point_mask_40.txt
│ ├── point_mask_41 2.txt
│ ├── point_mask_41.txt
│ ├── point_mask_42 2.txt
│ ├── point_mask_42.txt
│ ├── point_mask_43 2.txt
│ ├── point_mask_43.txt
│ ├── point_mask_44 2.txt
│ ├── point_mask_44.txt
│ ├── point_mask_45 2.txt
│ ├── point_mask_45.txt
│ ├── point_mask_46 2.txt
│ ├── point_mask_46.txt
│ ├── point_mask_47 2.txt
│ ├── point_mask_47.txt
│ ├── point_mask_48 2.txt
│ ├── point_mask_48.txt
│ ├── point_mask_49 2.txt
│ ├── point_mask_49.txt
│ ├── point_mask_5 2.txt
│ ├── point_mask_5.txt
│ ├── point_mask_50 2.txt
│ ├── point_mask_50.txt
│ ├── point_mask_51 2.txt
│ ├── point_mask_51.txt
│ ├── point_mask_52 2.txt
│ ├── point_mask_52.txt
│ ├── point_mask_53 2.txt
│ ├── point_mask_53.txt
│ ├── point_mask_54 2.txt
│ ├── point_mask_54.txt
│ ├── point_mask_55 2.txt
│ ├── point_mask_55.txt
│ ├── point_mask_56 2.txt
│ ├── point_mask_56.txt
│ ├── point_mask_57 2.txt
│ ├── point_mask_57.txt
│ ├── point_mask_58 2.txt
│ ├── point_mask_58.txt
│ ├── point_mask_59 2.txt
│ ├── point_mask_59.txt
│ ├── point_mask_6 2.txt
│ ├── point_mask_6.txt
│ ├── point_mask_60 2.txt
│ ├── point_mask_60.txt
│ ├── point_mask_61 2.txt
│ ├── point_mask_61.txt
│ ├── point_mask_62 2.txt
│ ├── point_mask_62.txt
│ ├── point_mask_63 2.txt
│ ├── point_mask_63.txt
│ ├── point_mask_64 2.txt
│ ├── point_mask_64.txt
│ ├── point_mask_65 2.txt
│ ├── point_mask_65.txt
│ ├── point_mask_66 2.txt
│ ├── point_mask_66.txt
│ ├── point_mask_67 2.txt
│ ├── point_mask_67.txt
│ ├── point_mask_68 2.txt
│ ├── point_mask_68.txt
│ ├── point_mask_69 2.txt
│ ├── point_mask_69.txt
│ ├── point_mask_7 2.txt
│ ├── point_mask_7.txt
│ ├── point_mask_70 2.txt
│ ├── point_mask_70.txt
│ ├── point_mask_71 2.txt
│ ├── point_mask_71.txt
│ ├── point_mask_72 2.txt
│ ├── point_mask_72.txt
│ ├── point_mask_73 2.txt
│ ├── point_mask_73.txt
│ ├── point_mask_74 2.txt
│ ├── point_mask_74.txt
│ ├── point_mask_75 2.txt
│ ├── point_mask_75.txt
│ ├── point_mask_76 2.txt
│ ├── point_mask_76.txt
│ ├── point_mask_77 2.txt
│ ├── point_mask_77.txt
│ ├── point_mask_78 2.txt
│ ├── point_mask_78.txt
│ ├── point_mask_79 2.txt
│ ├── point_mask_79.txt
│ ├── point_mask_8 2.txt
│ ├── point_mask_8.txt
│ ├── point_mask_80 2.txt
│ ├── point_mask_80.txt
│ ├── point_mask_81 2.txt
│ ├── point_mask_81.txt
│ ├── point_mask_82 2.txt
│ ├── point_mask_82.txt
│ ├── point_mask_83 2.txt
│ ├── point_mask_83.txt
│ ├── point_mask_84 2.txt
│ ├── point_mask_84.txt
│ ├── point_mask_85 2.txt
│ ├── point_mask_85.txt
│ ├── point_mask_86 2.txt
│ ├── point_mask_86.txt
│ ├── point_mask_87 2.txt
│ ├── point_mask_87.txt
│ ├── point_mask_88 2.txt
│ ├── point_mask_88.txt
│ ├── point_mask_89 2.txt
│ ├── point_mask_89.txt
│ ├── point_mask_9 2.txt
│ ├── point_mask_9.txt
│ ├── point_mask_90 2.txt
│ ├── point_mask_90.txt
│ ├── point_mask_91 2.txt
│ └── point_mask_91.txt
├── flowcharts
│ ├── .DS_Store
│ ├── trimap_flowchart.png
│ └── trimap_flowchart_small.png
└── polygons
│ ├── .DS_Store
│ ├── raw_mask_0.txt
│ ├── raw_mask_1.txt
│ ├── raw_mask_10.txt
│ ├── raw_mask_11.txt
│ ├── raw_mask_12.txt
│ ├── raw_mask_13.txt
│ ├── raw_mask_14.txt
│ ├── raw_mask_15.txt
│ ├── raw_mask_16.txt
│ ├── raw_mask_17.txt
│ ├── raw_mask_18.txt
│ ├── raw_mask_19.txt
│ ├── raw_mask_2.txt
│ ├── raw_mask_20.txt
│ ├── raw_mask_21.txt
│ ├── raw_mask_22.txt
│ ├── raw_mask_23.txt
│ ├── raw_mask_24.txt
│ ├── raw_mask_25.txt
│ ├── raw_mask_26.txt
│ ├── raw_mask_27.txt
│ ├── raw_mask_28.txt
│ ├── raw_mask_29.txt
│ ├── raw_mask_3.txt
│ ├── raw_mask_30.txt
│ ├── raw_mask_31.txt
│ ├── raw_mask_32.txt
│ ├── raw_mask_33.txt
│ ├── raw_mask_34.txt
│ ├── raw_mask_35.txt
│ ├── raw_mask_36.txt
│ ├── raw_mask_37.txt
│ ├── raw_mask_38.txt
│ ├── raw_mask_39.txt
│ ├── raw_mask_4.txt
│ ├── raw_mask_40.txt
│ ├── raw_mask_41.txt
│ ├── raw_mask_42.txt
│ ├── raw_mask_43.txt
│ ├── raw_mask_44.txt
│ ├── raw_mask_45.txt
│ ├── raw_mask_46.txt
│ ├── raw_mask_47.txt
│ ├── raw_mask_48.txt
│ ├── raw_mask_49.txt
│ ├── raw_mask_5.txt
│ ├── raw_mask_50.txt
│ ├── raw_mask_51.txt
│ ├── raw_mask_52.txt
│ ├── raw_mask_53.txt
│ ├── raw_mask_54.txt
│ ├── raw_mask_55.txt
│ ├── raw_mask_56.txt
│ ├── raw_mask_57.txt
│ ├── raw_mask_58.txt
│ ├── raw_mask_59.txt
│ ├── raw_mask_6.txt
│ ├── raw_mask_60.txt
│ ├── raw_mask_61.txt
│ ├── raw_mask_62.txt
│ ├── raw_mask_63.txt
│ ├── raw_mask_64.txt
│ ├── raw_mask_65.txt
│ ├── raw_mask_66.txt
│ ├── raw_mask_67.txt
│ ├── raw_mask_68.txt
│ ├── raw_mask_69.txt
│ ├── raw_mask_7.txt
│ ├── raw_mask_70.txt
│ ├── raw_mask_71.txt
│ ├── raw_mask_72.txt
│ ├── raw_mask_73.txt
│ ├── raw_mask_74.txt
│ ├── raw_mask_75.txt
│ ├── raw_mask_76.txt
│ ├── raw_mask_77.txt
│ ├── raw_mask_78.txt
│ ├── raw_mask_79.txt
│ ├── raw_mask_8.txt
│ ├── raw_mask_80.txt
│ ├── raw_mask_81.txt
│ ├── raw_mask_82.txt
│ ├── raw_mask_83.txt
│ ├── raw_mask_84.txt
│ ├── raw_mask_85.txt
│ ├── raw_mask_86.txt
│ ├── raw_mask_87.txt
│ ├── raw_mask_88.txt
│ ├── raw_mask_89.txt
│ ├── raw_mask_9.txt
│ ├── raw_mask_90.txt
│ ├── raw_mask_91.txt
│ └── raw_mask_92.txt
├── doc
├── Doxyfile
├── doxygen_log.txt
├── html
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── closed.png
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dynsections.js
│ ├── files.html
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── index.html
│ ├── jquery.js
│ ├── menu.js
│ ├── menudata.js
│ ├── namespaces.html
│ ├── namespacetrimap__module.html
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── search
│ │ ├── all_0.html
│ │ ├── all_0.js
│ │ ├── close.png
│ │ ├── files_0.html
│ │ ├── files_0.js
│ │ ├── mag_sel.png
│ │ ├── namespaces_0.html
│ │ ├── namespaces_0.js
│ │ ├── nomatches.html
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── search_l.png
│ │ ├── search_m.png
│ │ ├── search_r.png
│ │ └── searchdata.js
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ ├── tabs.css
│ ├── trimap__module_8py.html
│ └── trimap__module_8py_source.html
├── py_filter.bat.txt
└── trimap_module.py
├── images
├── .DS_Store
├── examples
│ ├── bg_img.png
│ ├── closing.png
│ ├── closing_trimap.png
│ ├── closing_trimap_new.png
│ ├── dilation_effect.gif
│ ├── eroded_image.gif
│ ├── erosion_effect.gif
│ ├── fg_img.png
│ ├── full_img.png
│ ├── opening.png
│ ├── opening_trimap.png
│ ├── opening_trimap_new.png
│ ├── seg_img.png
│ ├── trimap.png
│ ├── trimap_20.png
│ └── trimap_30.png
├── practices
│ ├── binary_0.png
│ ├── binary_1.png
│ ├── binary_2.png
│ └── binary_3.png
├── results
│ ├── 10px_test_image_00.png
│ ├── 10px_test_image_01.png
│ ├── 10px_test_image_03.png
│ ├── 10px_test_image_05.png
│ ├── 10px_test_image_07.png
│ ├── 10px_test_image_09.png
│ ├── 10px_test_image_1.png
│ ├── 10px_test_image_11.png
│ ├── 10px_test_image_2.png
│ ├── 10px_test_image_Erosion_01.png
│ ├── 10px_test_image_Erosion_03.png
│ ├── 10px_test_image_Erosion_05.png
│ ├── 10px_test_image_Erosion_07.png
│ ├── 10px_test_image_Erosion_09.png
│ ├── 10px_test_image_Erosion_11.png
│ └── 20px_test_image_9.png
└── test_images
│ ├── test_image_0.png
│ ├── test_image_1.png
│ ├── test_image_10.png
│ ├── test_image_11.png
│ ├── test_image_12.png
│ ├── test_image_2.png
│ ├── test_image_3.png
│ ├── test_image_4.png
│ ├── test_image_5.png
│ ├── test_image_6.png
│ ├── test_image_7.png
│ ├── test_image_8.png
│ └── test_image_9.png
├── requirements.txt
├── src
├── binarymask.py
├── feature_extraction.py
└── foreground_scaling.py
├── test
├── README.md
├── __pycache__
│ └── trimap_module.cpython-36.pyc
└── test_trimap_module.py
├── trimap_class.py
├── trimap_module.py
└── trimap_tutorial.ipynb
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | .hypothesis/
51 | .pytest_cache/
52 |
53 | # Translations
54 | *.mo
55 | *.pot
56 |
57 | # Django stuff:
58 | *.log
59 | local_settings.py
60 | db.sqlite3
61 | db.sqlite3-journal
62 |
63 | # Flask stuff:
64 | instance/
65 | .webassets-cache
66 |
67 | # Scrapy stuff:
68 | .scrapy
69 |
70 | # Sphinx documentation
71 | docs/_build/
72 |
73 | # PyBuilder
74 | target/
75 |
76 | # Jupyter Notebook
77 | .ipynb_checkpoints
78 |
79 | # IPython
80 | profile_default/
81 | ipython_config.py
82 |
83 | # pyenv
84 | .python-version
85 |
86 | # pipenv
87 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
88 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
89 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
90 | # install all needed dependencies.
91 | #Pipfile.lock
92 |
93 | # celery beat schedule file
94 | celerybeat-schedule
95 |
96 | # SageMath parsed files
97 | *.sage.py
98 |
99 | # Environments
100 | .env
101 | .venv
102 | env/
103 | venv/
104 | ENV/
105 | env.bak/
106 | venv.bak/
107 |
108 | # Spyder project settings
109 | .spyderproject
110 | .spyproject
111 |
112 | # Rope project settings
113 | .ropeproject
114 |
115 | # mkdocs documentation
116 | /site
117 |
118 | # mypy
119 | .mypy_cache/
120 | .dmypy.json
121 | dmypy.json
122 |
123 | # Pyre type checker
124 | .pyre/
125 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Leo Nugraha
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Automatic Trimap Generator ##
2 |
3 | ##### Keywords: Alpha Compositioning,Trimap #####
4 | ##### 關鍵: Alpha合成、三分圖 #####
5 | ##### キーワード:アルファチャンネル、マスク画像 #####
6 |
7 | ## Introduction ##
8 |
9 | In image matting, trimap estimates foreground from background by inscribing unknown region
10 | Mathematically, an image can be represented by the following equation:
11 |
12 |
13 |
14 |
15 | In this equation, Ip denotes the entire image, Fp denotes a definite foreground, and Bp denotes a definite background.
16 | On the other hand, is an alpha matte constant with a value ranging between 0 and 1. An value of 0 indicates that the pixel belongs to a background; whereas an value of 1 indicates otherwise. Any value in between means a mixed pixel that has to be determined.
17 |
18 | ## Descriptions ##
19 |
20 | Generate a trimap (foreground, background, and unknown regions) from an input of binary (mask) image
21 | Foreground has a pixel value of 255; background has a pixel value of 0; and unknown has a pixel value of 127
22 | In this example, the trimap is generated by extending a binary image of a previously segmented tumor
23 | A binary image consists of two parts: foreground (white) which is the tumor and background (black) which is the surrounding region
24 | Keep in mind that the unknown region is simply an approximation rather than an exact delineation. Therefore, matting process becomes a crucial key to extract foreground images with exact precision
25 | All binary images in this repository were generated from U-Net with a Jaccard's Coefficient of 0.94 (out of 1), indicating a high agreement between the ground truth and segmented mask images
26 | Image erosion feature is added which may anticipate any overestimating foreground issue
27 |
28 | Input: a binary image (from a segmented lesion)
29 | Output: a trimap with unknown region (gray) from tumor dilation
30 |
31 | ## Flow Chart ##
32 |
33 |
34 | ---
35 | **TO DO:**
36 | - [ ] **Finding The Most Dominant Foreground** -- automatic kernel design (generate an odd-sized matrix from an integer)
37 | - [ ] **Contour Detection Module** -- an alternative method to circumscribe foreground without U-Net segmentation
38 | - [ ] **Mask Contour Module** -- create a binary mask from contour point polygon
39 |
40 | ## Examples ##
41 | **1 Dilating the binary image (trimap_module.py)**
42 | ```python
43 | import cv2, os, sys
44 | from trimap_module import trimap
45 |
46 | path = "./image/samples/seg_image.png";
47 | image = extractImage(path);
48 | name = "testImage";
49 | size = 10; # how many pixel extension do you want to dilate
50 | number = 1; # numbering purpose
51 | trimap(image, name, size, number, erosion=False)
52 | ```
53 | |**FULL IMAGE**| **MASK IMAGE**|**FOREGROUND**| **BACKGROUND**|
54 | |:----------:|:----------:|:----------:|:----------:|
55 | ||  |  | 
56 |
57 |
58 | |**BINARY IMAGE**|**TRIMAP (10 PX)**|**TRIMAP (20 PX)**|**TRIMAP (30 PX)**|
59 | |:----------:|:----------:|:----------:|:----------:|
60 | |||||
61 |
62 | **2 Handling Non-Dominant Foreground (trimap_module.py)**
63 | ```python
64 | import cv2, os, sys
65 | from trimap_module import trimap
66 | path = "./image/test_images/test_image_10.png";
67 | image = extractImage(path);
68 |
69 | kernel = np.ones( (9,9), np.uint8 );
70 | opening = unit01.morph_close(image,kernel);
71 | trimap(opening, "trimap_result", 10, 1, erosion=False)
72 | ```
73 | |**NOISES**|**ORIGINAL IMAGES**|**TRIMAPS PREVIOUS**|**TRIMAPS NEW**|
74 | |:----------|:----------:|:----------:|:----------:|
75 | |**Outside FG**||||
76 | |**Inside FG**||||
77 |
78 | **3 Impact of Eroding or Expanding Foreground (trimap_class.py)**
79 | ```python
80 | import cv2, os, sys
81 | from trimap_class import trimap
82 | path = "./image/test_images/test_image_12.png";
83 | image = extractImage(path);
84 |
85 | trimap(image, ""trimap_result, 10, 1, DEFG=Erosion, num_iter=3);
86 | ```
87 | The illustration starts with zero erosion/dilation; followed with one, three, five, until eleven iterations (an increment of two).
88 |
89 |
90 |
91 |
92 | Erosion Expansion
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | **4 Image Processing using Feature Extraction Module (feature_extraction.py)**
103 | **Coming Soon**
104 |
105 | ## References ##
106 | 1. Vikas Gupta and Shanmuganathan Raman. (2017). "Automatic Trimap Generation for Image Matting". Indian Institute of Technology, Gandhinagar, IND [download](https://arxiv.org/pdf/1707.00333.pdf)
107 | 2. Olivier Juan and Reanud Keriven. (2005). "Trimap Segmentation for Fast and User-Friendly Alpha Matting". FRA [download](http://imagine.enpc.fr/publications/papers/05vlsm_c.pdf)
108 | 3. Jimei Yang, Brian Price, Scott Cohen, Honglak Lee, and Ming-Hsuan Yang. (2016). "Object Contour Detection with a Fully Convolutional Encoder-Decoder Network". Adobe Research, USA [download](https://arxiv.org/pdf/1603.04530.pdf)
109 |
--------------------------------------------------------------------------------
/__pycache__/trimap_generate.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/__pycache__/trimap_generate.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/trimap_module.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/__pycache__/trimap_module.cpython-36.pyc
--------------------------------------------------------------------------------
/archive/trimap_module_20190519.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import cv2, os, sys
3 | import numpy as np
4 |
5 | def extractImage(path):
6 | # error handller if the intended path is not found
7 | image = cv2.imread(path, cv2.IMREAD_GRAYSCALE);
8 | return image
9 |
10 | def checkImage(image):
11 | """
12 | Args:
13 | image: input image to be checked
14 |
15 | Returns:
16 | binary image
17 |
18 | Raises:
19 | RGB image, grayscale image, all-black, and all-white image
20 |
21 | """
22 | if len(image.shape) > 2:
23 | print("ERROR: non-binary image (RGB)");
24 | sys.exit();
25 |
26 | smallest = image.min(axis=0).min(axis=0); # lowest pixel value; should be 0 (black)
27 | largest = image.max(axis=0).max(axis=0); # highest pixel value; should be 1 (white)
28 |
29 | if (smallest == 0 and largest == 0):
30 | print("ERROR: non-binary image (all black)");
31 | sys.exit();
32 | elif (smallest == 255 and largest == 255):
33 | print("ERROR: non-binary image (all white)");
34 | sys.exit();
35 | elif (smallest > 0 or largest < 255 ):
36 | print("ERROR: non-binary image (grayscale)");
37 | sys.exit();
38 | else:
39 | return True
40 |
41 | class Toolbox:
42 | def __init__(self, image):
43 | self.image = image;
44 |
45 | def printImage(self):
46 | """
47 | Print image into a file for checking purpose
48 | unitTest = Toolbox(image);
49 | unitTest.printImage(image);
50 | """
51 |
52 | f = open("image_results.dat", "w+")
53 | for i in range(0, self.image.shape[0]):
54 | for j in range(0, self.image.shape[1]):
55 | f.write("%d " %self.image[i,j])
56 | f.write("\n")
57 | f.close()
58 |
59 | def saveImage(self):
60 | """
61 | Save the image as a bmp file
62 | """
63 |
64 |
65 | def displayImage(self):
66 | cv2.imshow('Displayed Image', self.image);
67 | cv2.waitKey(0);
68 | cv2.destroyAllWindows();
69 |
70 | def opening(self, image):
71 | # FIXME: to be completed
72 | # Effective when dealing with salt pepper noise
73 | kernel = np.ones( (5,5), np.uint8 )
74 | cv2.morphologyEx(self.image, cv2.MORPH_OPEN, kernel)
75 | return image
76 |
77 | def closing(self, image):
78 | # FIXME: to be completed
79 | # Effective when dealing with noises inside foreground
80 | kernel = np.ones( (5,5), np.uint8 )
81 | cv2.morphologyEx(self.image, cv2.MORPH_CLOSE, kernel)
82 | return image
83 |
84 |
85 | def trimap(image, name, size, number, erosion=False):
86 | """
87 | This function creates a trimap based on simple dilation algorithm
88 | Inputs [4]: a binary image (black & white only), name of the image, dilation pixels
89 | the last argument is optional; i.e., how many iterations will the image get eroded
90 | Output : a trimap
91 | """
92 | checkImage(image);
93 |
94 | row = image.shape[0];
95 | col = image.shape[1];
96 |
97 | pixels = 2*size + 1; ## Double and plus 1 to have an odd-sized kernel
98 | kernel = np.ones((pixels,pixels),np.uint8) ## How many pixel of extension do I get
99 |
100 | if erosion is not False:
101 | erosion = int(erosion)
102 | erosion_kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
103 | image = cv2.erode(image, erosion_kernel, iterations=erosion) ## How many erosion do you expect
104 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
105 | # Error-handler to prevent entire foreground annihilation
106 | if cv2.countNonZero(image) == 0:
107 | print("ERROR: foreground has been entirely eroded");
108 | sys.exit();
109 |
110 | dilation = cv2.dilate(image, kernel, iterations = 1)
111 |
112 | dilation = np.where(dilation == 255, 127, dilation) ## WHITE to GRAY
113 | remake = np.where(dilation != 127, 0, dilation) ## Smoothing
114 | remake = np.where(image > 127, 200, dilation) ## mark the tumor inside GRAY
115 |
116 | remake = np.where(remake < 127, 0, remake) ## Embelishment
117 | remake = np.where(remake > 200, 0, remake) ## Embelishment
118 | remake = np.where(remake == 200, 255, remake) ## GRAY to WHITE
119 |
120 | #############################################
121 | # Ensures only three pixel values available #
122 | # TODO: Optimization with Cython #
123 | #############################################
124 | for i in range(0,row):
125 | for j in range (0,col):
126 | if (remake[i,j] != 0 and remake[i,j] != 255):
127 | remake[i,j] = 127;
128 |
129 | path = "./images/results/" ## Change the directory
130 | new_name = '{}px_'.format(size) + name + '_{}.png'.format(number);
131 | cv2.imwrite(os.path.join(path , new_name) , remake)
132 |
133 |
134 | #############################################
135 | ### TESTING SECTION ###
136 | #############################################
137 | if __name__ == '__main__':
138 |
139 | path = "./images/test_images/test_image_12.png";
140 | image = extractImage(path)
141 |
142 | size = 10;
143 | number = path[-5];
144 | title = "test_image"
145 |
146 | trimap(image, title, size, number, erosion=False);
147 |
148 | ### Testing Methods from the Toolbox Class
149 | ### unit01 = Toolbox(image);
150 | ### unit01.displayImage();
151 |
--------------------------------------------------------------------------------
/archive/trimap_module_20190811.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import cv2, os, sys
3 | import numpy as np
4 |
5 | def extractImage(path):
6 | # error handller if the intended path is not found
7 | image = cv2.imread(path, cv2.IMREAD_GRAYSCALE);
8 | return image
9 |
10 | def checkImage(image):
11 | """
12 | Args:
13 | image: input image to be checked
14 | Returns:
15 | binary image
16 | Raises:
17 | RGB image, grayscale image, all-black, and all-white image
18 |
19 | """
20 | if len(image.shape) > 2:
21 | print("ERROR: non-binary image (RGB)");
22 | sys.exit();
23 |
24 | smallest = image.min(axis=0).min(axis=0); # lowest pixel value; should be 0 (black)
25 | largest = image.max(axis=0).max(axis=0); # highest pixel value; should be 1 (white)
26 |
27 | if (smallest == 0 and largest == 0):
28 | print("ERROR: non-binary image (all black)");
29 | sys.exit();
30 | elif (smallest == 255 and largest == 255):
31 | print("ERROR: non-binary image (all white)");
32 | sys.exit();
33 | elif (smallest > 0 or largest < 255 ):
34 | print("ERROR: non-binary image (grayscale)");
35 | sys.exit();
36 | else:
37 | return True
38 |
39 | class Toolbox:
40 | def __init__(self, image):
41 | self.image = image;
42 |
43 | @property
44 | def printImage(self):
45 | """
46 | Print image into a file for checking purpose
47 | unitTest = Toolbox(image);
48 | unitTest.printImage(image);
49 | """
50 | f = open("image_results.dat", "w+")
51 | for i in range(0, self.image.shape[0]):
52 | for j in range(0, self.image.shape[1]):
53 | f.write("%d " %self.image[i,j])
54 | f.write("\n")
55 | f.close()
56 |
57 | @property
58 | def displayImage(self):
59 | """
60 | Display the image on a window
61 | Press any key to exit
62 | """
63 | cv2.imshow('Displayed Image', self.image);
64 | cv2.waitKey(0);
65 | cv2.destroyAllWindows();
66 |
67 | def saveImage(self, title, extension):
68 | """
69 | Save as a specific image format (bmp, png, or jpeg)
70 | """
71 | cv2.imwrite("{}.{}".format(title,extension), self.image);
72 |
73 | def morph_open(self, image, kernel):
74 | """
75 | Remove all white noises or speckles outside images
76 | Need to tune the kernel size
77 | Instruction:
78 | unit01 = Toolbox(image);
79 | kernel = np.ones( (9,9), np.uint8 );
80 | morph = unit01.morph_open(input_image, kernel);
81 | """
82 | bin_open = cv2.morphologyEx(self.image, cv2.MORPH_OPEN, kernel)
83 | return bin_open
84 |
85 | def morph_close(self, image, kernel):
86 | """
87 | Remove all black noises or speckles inside images
88 | Need to tune the kernel size
89 | Instruction:
90 | unit01 = Toolbox(image);
91 | kernel = np.ones( (11,11)_, np.uint8 );
92 | morph = unit01.morph_close(input_image, kernel);
93 | """
94 | bin_close = cv2.morphologyEx(self.image, cv2.MORPH_CLOSE, kernel)
95 | return bin_close
96 |
97 |
98 | def trimap(image, name, size, number, erosion=False):
99 | """
100 | This function creates a trimap based on simple dilation algorithm
101 | Inputs [4]: a binary image (black & white only), name of the image, dilation pixels
102 | the last argument is optional; i.e., how many iterations will the image get eroded
103 | Output : a trimap
104 | """
105 | checkImage(image);
106 |
107 | row = image.shape[0];
108 | col = image.shape[1];
109 |
110 | pixels = 2*size + 1; ## Double and plus 1 to have an odd-sized kernel
111 | kernel = np.ones((pixels,pixels),np.uint8) ## How many pixel of extension do I get
112 |
113 | if erosion is not False:
114 | erosion = int(erosion)
115 | erosion_kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
116 | image = cv2.erode(image, erosion_kernel, iterations=erosion) ## How many erosion do you expect
117 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
118 | # Error-handler to prevent entire foreground annihilation
119 | if cv2.countNonZero(image) == 0:
120 | print("ERROR: foreground has been entirely eroded");
121 | sys.exit();
122 |
123 | dilation = cv2.dilate(image, kernel, iterations = 1)
124 |
125 | dilation = np.where(dilation == 255, 127, dilation) ## WHITE to GRAY
126 | remake = np.where(dilation != 127, 0, dilation) ## Smoothing
127 | remake = np.where(image > 127, 200, dilation) ## mark the tumor inside GRAY
128 |
129 | remake = np.where(remake < 127, 0, remake) ## Embelishment
130 | remake = np.where(remake > 200, 0, remake) ## Embelishment
131 | remake = np.where(remake == 200, 255, remake) ## GRAY to WHITE
132 |
133 | #############################################
134 | # Ensures only three pixel values available #
135 | # TODO: Optimization with Cython #
136 | #############################################
137 | for i in range(0,row):
138 | for j in range (0,col):
139 | if (remake[i,j] != 0 and remake[i,j] != 255):
140 | remake[i,j] = 127;
141 |
142 | path = "./images/results/" ## Change the directory
143 | new_name = '{}px_'.format(size) + name + '_{}.png'.format(number);
144 | cv2.imwrite(os.path.join(path , new_name) , remake)
145 |
146 |
147 | #############################################
148 | ### TESTING SECTION ###
149 | #############################################
150 | if __name__ == '__main__':
151 |
152 | path = "./images/test_images/test_image_11.png";
153 | image = extractImage(path)
154 |
155 | size = 10;
156 | number = path[-5];
157 | title = "test_image"
158 |
159 | unit01 = Toolbox(image);
160 | kernel1 = np.ones( (11,11), np.uint8 );
161 | unit01.displayImage;
162 |
163 | opening = unit01.morph_close(image,kernel1);
164 | trimap(opening, title, size, number, erosion=False);
165 | unit02 = Toolbox(opening);
166 | unit02.displayImage;
167 |
168 | ########################################################
169 | ## Default instruction (no binary opening or closing ##
170 | ## trimap(image, title, size, number, erosion=False); ##
171 | ########################################################
172 |
--------------------------------------------------------------------------------
/assets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/.DS_Store
--------------------------------------------------------------------------------
/assets/flowcharts/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/flowcharts/.DS_Store
--------------------------------------------------------------------------------
/assets/flowcharts/trimap_flowchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/flowcharts/trimap_flowchart.png
--------------------------------------------------------------------------------
/assets/flowcharts/trimap_flowchart_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/flowcharts/trimap_flowchart_small.png
--------------------------------------------------------------------------------
/assets/polygons/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/polygons/.DS_Store
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_0.txt:
--------------------------------------------------------------------------------
1 | -115.479 -60.6933 -120.5
2 | -113.33 -60.6933 -120.5
3 | -111.182 -60.6933 -120.5
4 | -109.033 -60.6933 -120.5
5 | -107.959 -59.6191 -120.5
6 | -106.885 -58.5449 -120.5
7 | -105.811 -57.4707 -120.5
8 | -104.736 -56.3965 -120.5
9 | -103.662 -55.3223 -120.5
10 | -102.588 -54.248 -120.5
11 | -101.514 -53.1738 -120.5
12 | -100.439 -52.0996 -120.5
13 | -98.291 -52.0996 -120.5
14 | -97.2168 -51.0254 -120.5
15 | -96.1426 -49.9512 -120.5
16 | -93.9941 -49.9512 -120.5
17 | -91.8457 -49.9512 -120.5
18 | -90.7715 -48.8769 -120.5
19 | -89.6973 -47.8027 -120.5
20 | -87.5488 -47.8027 -120.5
21 | -85.4004 -47.8027 -120.5
22 | -83.252 -47.8027 -120.5
23 | -81.1035 -47.8027 -120.5
24 | -80.0293 -46.7285 -120.5
25 | -78.9551 -45.6543 -120.5
26 | -76.8066 -45.6543 -120.5
27 | -74.6582 -45.6543 -120.5
28 | -73.584 -44.5801 -120.5
29 | -72.5098 -43.5058 -120.5
30 | -70.3613 -43.5058 -120.5
31 | -69.2871 -42.4316 -120.5
32 | -68.2129 -41.3574 -120.5
33 | -66.0644 -41.3574 -120.5
34 | -64.9902 -40.2832 -120.5
35 | -63.916 -39.209 -120.5
36 | -62.8418 -38.1347 -120.5
37 | -61.7676 -37.0605 -120.5
38 | -60.6933 -35.9863 -120.5
39 | -59.6191 -34.9121 -120.5
40 | -57.4707 -34.9121 -120.5
41 | -56.3965 -33.8379 -120.5
42 | -55.3223 -32.7637 -120.5
43 | -53.1738 -32.7637 -120.5
44 | -52.0996 -31.6894 -120.5
45 | -51.0254 -30.6152 -120.5
46 | -49.9512 -29.541 -120.5
47 | -48.8769 -28.4668 -120.5
48 | -46.7285 -28.4668 -120.5
49 | -45.6543 -27.3926 -120.5
50 | -45.6543 -25.2441 -120.5
51 | -44.5801 -24.1699 -120.5
52 | -43.5058 -23.0957 -120.5
53 | -42.4316 -22.0215 -120.5
54 | -40.2832 -22.0215 -120.5
55 | -39.209 -20.9472 -120.5
56 | -38.1347 -19.873 -120.5
57 | -35.9863 -19.873 -120.5
58 | -34.9121 -18.7988 -120.5
59 | -33.8379 -17.7246 -120.5
60 | -31.6894 -17.7246 -120.5
61 | -29.541 -17.7246 -120.5
62 | -28.4668 -16.6504 -120.5
63 | -27.3926 -15.5761 -120.5
64 | -25.2441 -15.5761 -120.5
65 | -24.1699 -14.5019 -120.5
66 | -23.0957 -13.4277 -120.5
67 | -20.9472 -13.4277 -120.5
68 | -19.873 -12.3535 -120.5
69 | -18.7988 -11.2793 -120.5
70 | -17.7246 -10.205 -120.5
71 | -16.6504 -9.13083 -120.5
72 | -14.5019 -9.13083 -120.5
73 | -13.4277 -8.05661 -120.5
74 | -12.3535 -6.98239 -120.5
75 | -11.2793 -5.90817 -120.5
76 | -10.205 -4.83395 -120.5
77 | -8.05661 -4.83395 -120.5
78 | -6.98239 -3.75973 -120.5
79 | -5.90817 -2.68552 -120.5
80 | -4.83395 -1.6113 -120.5
81 | -3.75973 -0.537078 -120.5
82 | -2.68552 0.537142 -120.5
83 | -1.6113 1.61136 -120.5
84 | 0.537142 1.61136 -120.5
85 | 1.61136 2.68558 -120.5
86 | 2.68558 3.7598 -120.5
87 | 3.7598 4.83402 -120.5
88 | 4.83402 5.90824 -120.5
89 | 6.98246 5.90824 -120.5
90 | 8.05668 6.98246 -120.5
91 | 9.13089 8.05668 -120.5
92 | 10.2051 9.13089 -120.5
93 | 11.2793 10.2051 -120.5
94 | 12.3536 11.2793 -120.5
95 | 13.4278 12.3536 -120.5
96 | 15.5762 12.3536 -120.5
97 | 16.6504 13.4278 -120.5
98 | 17.7246 14.502 -120.5
99 | 19.8731 14.502 -120.5
100 | 22.0215 14.502 -120.5
101 | 23.0957 15.5762 -120.5
102 | 24.17 16.6504 -120.5
103 | 26.3184 16.6504 -120.5
104 | 28.4668 16.6504 -120.5
105 | 29.5411 17.7246 -120.5
106 | 30.6153 18.7989 -120.5
107 | 32.7637 18.7989 -120.5
108 | 33.8379 19.8731 -120.5
109 | 34.9122 20.9473 -120.5
110 | 37.0606 20.9473 -120.5
111 | 38.1348 22.0215 -120.5
112 | 39.209 23.0957 -120.5
113 | 41.3575 23.0957 -120.5
114 | 42.4317 24.17 -120.5
115 | 43.5059 25.2442 -120.5
116 | 44.5801 26.3184 -120.5
117 | 44.5801 28.4668 -120.5
118 | 45.6543 29.5411 -120.5
119 | 46.7286 30.6153 -120.5
120 | 46.7286 32.7637 -120.5
121 | 47.8028 33.8379 -120.5
122 | 48.877 34.9122 -120.5
123 | 49.9512 35.9864 -120.5
124 | 51.0254 37.0606 -120.5
125 | 52.0997 38.1348 -120.5
126 | 53.1739 39.209 -120.5
127 | 54.2481 40.2832 -120.5
128 | 56.3965 40.2832 -120.5
129 | 57.4708 41.3575 -120.5
130 | 58.545 42.4317 -120.5
131 | 60.6934 42.4317 -120.5
132 | 61.7676 43.5059 -120.5
133 | 62.8419 44.5801 -120.5
134 | 64.9903 44.5801 -120.5
135 | 66.0645 45.6543 -120.5
136 | 67.1387 46.7286 -120.5
137 | 69.2872 46.7286 -120.5
138 | 70.3614 47.8028 -120.5
139 | 71.4356 48.877 -120.5
140 | 73.584 48.877 -120.5
141 | 74.6583 49.9512 -120.5
142 | 75.7325 51.0254 -120.5
143 | 76.8067 52.0997 -120.5
144 | 77.8809 53.1739 -120.5
145 | 80.0294 53.1739 -120.5
146 | 81.1036 54.2481 -120.5
147 | 82.1778 55.3223 -120.5
148 | 84.3262 55.3223 -120.5
149 | 85.4005 56.3965 -120.5
150 | 85.4005 58.545 -120.5
151 | 84.3262 59.6192 -120.5
152 | 83.252 60.6934 -120.5
153 | 82.1778 61.7676 -120.5
154 | 81.1036 62.8419 -120.5
155 | 80.0294 63.9161 -120.5
156 | 77.8809 63.9161 -120.5
157 | 76.8067 64.9903 -120.5
158 | 75.7325 66.0645 -120.5
159 | 73.584 66.0645 -120.5
160 | 72.5098 67.1387 -120.5
161 | 71.4356 68.2129 -120.5
162 | 69.2872 68.2129 -120.5
163 | 68.2129 69.2872 -120.5
164 | 67.1387 70.3614 -120.5
165 | 64.9903 70.3614 -120.5
166 | 62.8419 70.3614 -120.5
167 | 60.6934 70.3614 -120.5
168 | 58.545 70.3614 -120.5
169 | 57.4708 71.4356 -120.5
170 | 56.3965 72.5098 -120.5
171 | 54.2481 72.5098 -120.5
172 | 52.0997 72.5098 -120.5
173 | 49.9512 72.5098 -120.5
174 | 47.8028 72.5098 -120.5
175 | 45.6543 72.5098 -120.5
176 | 43.5059 72.5098 -120.5
177 | 41.3575 72.5098 -120.5
178 | 39.209 72.5098 -120.5
179 | 38.1348 71.4356 -120.5
180 | 37.0606 70.3614 -120.5
181 | 34.9122 70.3614 -120.5
182 | 32.7637 70.3614 -120.5
183 | 30.6153 70.3614 -120.5
184 | 29.5411 69.2872 -120.5
185 | 28.4668 68.2129 -120.5
186 | 26.3184 68.2129 -120.5
187 | 24.17 68.2129 -120.5
188 | 22.0215 68.2129 -120.5
189 | 20.9473 67.1387 -120.5
190 | 19.8731 66.0645 -120.5
191 | 17.7246 66.0645 -120.5
192 | 15.5762 66.0645 -120.5
193 | 13.4278 66.0645 -120.5
194 | 11.2793 66.0645 -120.5
195 | 10.2051 64.9903 -120.5
196 | 9.13089 63.9161 -120.5
197 | 6.98246 63.9161 -120.5
198 | 4.83402 63.9161 -120.5
199 | 2.68558 63.9161 -120.5
200 | 0.537142 63.9161 -120.5
201 | -1.6113 63.9161 -120.5
202 | -3.75973 63.9161 -120.5
203 | -5.90817 63.9161 -120.5
204 | -6.98239 64.9903 -120.5
205 | -8.05661 66.0645 -120.5
206 | -10.205 66.0645 -120.5
207 | -12.3535 66.0645 -120.5
208 | -14.5019 66.0645 -120.5
209 | -15.5761 67.1387 -120.5
210 | -16.6504 68.2129 -120.5
211 | -18.7988 68.2129 -120.5
212 | -20.9472 68.2129 -120.5
213 | -22.0215 69.2872 -120.5
214 | -23.0957 70.3614 -120.5
215 | -25.2441 70.3614 -120.5
216 | -27.3926 70.3614 -120.5
217 | -29.541 70.3614 -120.5
218 | -31.6894 70.3614 -120.5
219 | -32.7637 71.4356 -120.5
220 | -33.8379 72.5098 -120.5
221 | -35.9863 72.5098 -120.5
222 | -38.1347 72.5098 -120.5
223 | -40.2832 72.5098 -120.5
224 | -42.4316 72.5098 -120.5
225 | -44.5801 72.5098 -120.5
226 | -46.7285 72.5098 -120.5
227 | -48.8769 72.5098 -120.5
228 | -51.0254 72.5098 -120.5
229 | -53.1738 72.5098 -120.5
230 | -55.3223 72.5098 -120.5
231 | -57.4707 72.5098 -120.5
232 | -59.6191 72.5098 -120.5
233 | -61.7676 72.5098 -120.5
234 | -63.916 72.5098 -120.5
235 | -66.0644 72.5098 -120.5
236 | -67.1387 71.4356 -120.5
237 | -68.2129 70.3614 -120.5
238 | -70.3613 70.3614 -120.5
239 | -72.5098 70.3614 -120.5
240 | -73.584 69.2872 -120.5
241 | -74.6582 68.2129 -120.5
242 | -76.8066 68.2129 -120.5
243 | -77.8809 67.1387 -120.5
244 | -78.9551 66.0645 -120.5
245 | -81.1035 66.0645 -120.5
246 | -82.1777 64.9903 -120.5
247 | -83.252 63.9161 -120.5
248 | -84.3262 62.8419 -120.5
249 | -85.4004 61.7676 -120.5
250 | -87.5488 61.7676 -120.5
251 | -88.623 60.6934 -120.5
252 | -89.6973 59.6192 -120.5
253 | -90.7715 58.545 -120.5
254 | -91.8457 57.4708 -120.5
255 | -92.9199 56.3965 -120.5
256 | -93.9941 55.3223 -120.5
257 | -95.0684 54.2481 -120.5
258 | -96.1426 53.1739 -120.5
259 | -97.2168 52.0997 -120.5
260 | -98.291 51.0254 -120.5
261 | -99.3652 49.9512 -120.5
262 | -100.439 48.877 -120.5
263 | -101.514 47.8028 -120.5
264 | -102.588 46.7286 -120.5
265 | -103.662 45.6543 -120.5
266 | -104.736 44.5801 -120.5
267 | -105.811 43.5059 -120.5
268 | -105.811 41.3575 -120.5
269 | -106.885 40.2832 -120.5
270 | -107.959 39.209 -120.5
271 | -109.033 38.1348 -120.5
272 | -110.107 37.0606 -120.5
273 | -110.107 34.9122 -120.5
274 | -111.182 33.8379 -120.5
275 | -112.256 32.7637 -120.5
276 | -112.256 30.6153 -120.5
277 | -113.33 29.5411 -120.5
278 | -114.404 28.4668 -120.5
279 | -114.404 26.3184 -120.5
280 | -115.479 25.2442 -120.5
281 | -116.553 24.17 -120.5
282 | -116.553 22.0215 -120.5
283 | -117.627 20.9473 -120.5
284 | -118.701 19.8731 -120.5
285 | -118.701 17.7246 -120.5
286 | -118.701 15.5762 -120.5
287 | -119.775 14.502 -120.5
288 | -120.85 13.4278 -120.5
289 | -120.85 11.2793 -120.5
290 | -120.85 9.13089 -120.5
291 | -121.924 8.05668 -120.5
292 | -122.998 6.98246 -120.5
293 | -122.998 4.83402 -120.5
294 | -122.998 2.68558 -120.5
295 | -124.072 1.61136 -120.5
296 | -124.609 0.537142 -120.5
297 | -125.146 -1.6113 -120.5
298 | -125.146 -3.75973 -120.5
299 | -125.146 -5.90817 -120.5
300 | -125.146 -8.05661 -120.5
301 | -126.221 -9.13083 -120.5
302 | -126.758 -10.205 -120.5
303 | -127.295 -12.3535 -120.5
304 | -127.295 -14.5019 -120.5
305 | -127.295 -16.6504 -120.5
306 | -127.295 -18.7988 -120.5
307 | -127.295 -20.9472 -120.5
308 | -128.369 -22.0215 -120.5
309 | -128.906 -23.0957 -120.5
310 | -128.906 -25.2441 -120.5
311 | -129.443 -27.3926 -120.5
312 | -128.906 -29.541 -120.5
313 | -128.906 -31.6894 -120.5
314 | -128.369 -32.7637 -120.5
315 | -127.295 -33.8379 -120.5
316 | -127.295 -35.9863 -120.5
317 | -127.295 -38.1347 -120.5
318 | -127.295 -40.2832 -120.5
319 | -126.221 -41.3574 -120.5
320 | -125.146 -42.4316 -120.5
321 | -125.146 -44.5801 -120.5
322 | -125.146 -46.7285 -120.5
323 | -124.072 -47.8027 -120.5
324 | -122.998 -48.8769 -120.5
325 | -122.998 -51.0254 -120.5
326 | -121.924 -52.0996 -120.5
327 | -120.85 -53.1738 -120.5
328 | -120.85 -55.3223 -120.5
329 | -119.775 -56.3965 -120.5
330 | -118.701 -57.4707 -120.5
331 | -117.627 -58.5449 -120.5
332 | -116.553 -59.6191 -120.5
333 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_1.txt:
--------------------------------------------------------------------------------
1 | -42.4316 -103.662 -118
2 | -40.2832 -103.662 -118
3 | -38.1347 -103.662 -118
4 | -35.9863 -103.662 -118
5 | -33.8379 -103.662 -118
6 | -31.6894 -103.662 -118
7 | -29.541 -103.662 -118
8 | -27.3926 -103.662 -118
9 | -25.2441 -103.662 -118
10 | -23.0957 -103.662 -118
11 | -20.9472 -103.662 -118
12 | -18.7988 -103.662 -118
13 | -16.6504 -103.662 -118
14 | -14.5019 -103.662 -118
15 | -12.3535 -103.662 -118
16 | -10.205 -103.662 -118
17 | -8.05661 -103.662 -118
18 | -5.90817 -103.662 -118
19 | -4.83395 -102.588 -118
20 | -3.75973 -101.514 -118
21 | -1.6113 -101.514 -118
22 | -0.537078 -100.439 -118
23 | 0.537142 -99.3652 -118
24 | 2.68558 -99.3652 -118
25 | 3.7598 -98.291 -118
26 | 4.83402 -97.2168 -118
27 | 5.90824 -96.1426 -118
28 | 6.98246 -95.0684 -118
29 | 9.13089 -95.0684 -118
30 | 10.2051 -93.9941 -118
31 | 11.2793 -92.9199 -118
32 | 12.3536 -91.8457 -118
33 | 13.4278 -90.7715 -118
34 | 15.5762 -90.7715 -118
35 | 16.6504 -89.6973 -118
36 | 17.7246 -88.623 -118
37 | 18.7989 -87.5488 -118
38 | 19.8731 -86.4746 -118
39 | 22.0215 -86.4746 -118
40 | 23.0957 -85.4004 -118
41 | 24.17 -84.3262 -118
42 | 25.2442 -83.252 -118
43 | 26.3184 -82.1777 -118
44 | 27.3926 -81.1035 -118
45 | 28.4668 -80.0293 -118
46 | 30.6153 -80.0293 -118
47 | 31.6895 -78.9551 -118
48 | 32.7637 -77.8809 -118
49 | 34.9122 -77.8809 -118
50 | 35.9864 -76.8066 -118
51 | 37.0606 -75.7324 -118
52 | 39.209 -75.7324 -118
53 | 41.3575 -75.7324 -118
54 | 43.5059 -75.7324 -118
55 | 44.5801 -74.6582 -118
56 | 45.6543 -73.584 -118
57 | 47.8028 -73.584 -118
58 | 49.9512 -73.584 -118
59 | 51.0254 -72.5098 -118
60 | 52.0997 -71.4355 -118
61 | 54.2481 -71.4355 -118
62 | 56.3965 -71.4355 -118
63 | 57.4708 -70.3613 -118
64 | 58.545 -69.2871 -118
65 | 59.6192 -68.2129 -118
66 | 60.6934 -67.1387 -118
67 | 61.7676 -66.0644 -118
68 | 62.8419 -64.9902 -118
69 | 63.9161 -63.916 -118
70 | 64.9903 -62.8418 -118
71 | 67.1387 -62.8418 -118
72 | 68.2129 -61.7676 -118
73 | 69.2872 -60.6933 -118
74 | 70.3614 -59.6191 -118
75 | 71.4356 -58.5449 -118
76 | 73.584 -58.5449 -118
77 | 74.6583 -57.4707 -118
78 | 75.7325 -56.3965 -118
79 | 76.8067 -55.3223 -118
80 | 77.8809 -54.248 -118
81 | 80.0294 -54.248 -118
82 | 81.1036 -53.1738 -118
83 | 82.1778 -52.0996 -118
84 | 84.3262 -52.0996 -118
85 | 86.4747 -52.0996 -118
86 | 87.5489 -51.0254 -118
87 | 88.6231 -49.9512 -118
88 | 90.7715 -49.9512 -118
89 | 91.8458 -48.8769 -118
90 | 92.92 -47.8027 -118
91 | 95.0684 -47.8027 -118
92 | 96.1426 -46.7285 -118
93 | 97.2169 -45.6543 -118
94 | 99.3653 -45.6543 -118
95 | 100.44 -44.5801 -118
96 | 101.514 -43.5058 -118
97 | 103.662 -43.5058 -118
98 | 104.736 -42.4316 -118
99 | 105.811 -41.3574 -118
100 | 107.959 -41.3574 -118
101 | 109.033 -40.2832 -118
102 | 110.107 -39.209 -118
103 | 112.256 -39.209 -118
104 | 113.33 -38.1347 -118
105 | 114.404 -37.0605 -118
106 | 116.553 -37.0605 -118
107 | 117.627 -35.9863 -118
108 | 118.701 -34.9121 -118
109 | 120.85 -34.9121 -118
110 | 121.924 -33.8379 -118
111 | 122.998 -32.7637 -118
112 | 124.072 -31.6894 -118
113 | 124.072 -29.541 -118
114 | 125.147 -28.4668 -118
115 | 126.221 -27.3926 -118
116 | 126.221 -25.2441 -118
117 | 126.221 -23.0957 -118
118 | 126.221 -20.9472 -118
119 | 126.221 -18.7988 -118
120 | 126.221 -16.6504 -118
121 | 126.221 -14.5019 -118
122 | 126.221 -12.3535 -118
123 | 125.684 -10.205 -118
124 | 125.147 -9.13083 -118
125 | 124.072 -8.05661 -118
126 | 124.072 -5.90817 -118
127 | 124.072 -3.75973 -118
128 | 124.072 -1.6113 -118
129 | 124.072 0.537142 -118
130 | 123.535 2.68558 -118
131 | 122.998 3.7598 -118
132 | 121.924 4.83402 -118
133 | 121.924 6.98246 -118
134 | 121.924 9.13089 -118
135 | 120.85 10.2051 -118
136 | 119.775 11.2793 -118
137 | 119.775 13.4278 -118
138 | 118.701 14.502 -118
139 | 117.627 15.5762 -118
140 | 117.627 17.7246 -118
141 | 116.553 18.7989 -118
142 | 115.479 19.8731 -118
143 | 115.479 22.0215 -118
144 | 114.404 23.0957 -118
145 | 113.33 24.17 -118
146 | 113.33 26.3184 -118
147 | 112.256 27.3926 -118
148 | 111.182 28.4668 -118
149 | 111.182 30.6153 -118
150 | 110.107 31.6895 -118
151 | 109.033 32.7637 -118
152 | 109.033 34.9122 -118
153 | 108.496 37.0606 -118
154 | 108.496 39.209 -118
155 | 108.765 41.3575 -118
156 | 109.033 43.5059 -118
157 | 109.033 45.6543 -118
158 | 109.033 47.8028 -118
159 | 108.765 49.9512 -118
160 | 108.286 52.0997 -118
161 | 107.959 53.0396 -118
162 | 107.587 54.2481 -118
163 | 106.54 56.3965 -118
164 | 105.811 57.5971 -118
165 | 105.235 58.545 -118
166 | 103.662 60.6423 -118
167 | 103.622 60.6934 -118
168 | 101.713 62.8419 -118
169 | 101.514 63.0408 -118
170 | 99.5642 64.9903 -118
171 | 99.3653 65.1892 -118
172 | 97.2598 67.1387 -118
173 | 97.2169 67.1771 -118
174 | 95.0684 69.0279 -118
175 | 94.7551 69.2872 -118
176 | 92.92 70.8059 -118
177 | 92.0899 71.4356 -118
178 | 90.7715 72.4024 -118
179 | 88.9991 73.584 -118
180 | 88.6231 73.8266 -118
181 | 86.4747 75.1618 -118
182 | 85.4601 75.7325 -118
183 | 84.3262 76.351 -118
184 | 82.1778 77.4577 -118
185 | 81.2468 77.8809 -118
186 | 80.0294 78.418 -118
187 | 77.8809 79.3027 -118
188 | 75.9804 80.0294 -118
189 | 75.7325 80.1241 -118
190 | 73.584 80.9194 -118
191 | 71.4356 81.5946 -118
192 | 69.5801 82.1778 -118
193 | 69.2872 82.2699 -118
194 | 67.1387 82.8223 -118
195 | 64.9903 83.3415 -118
196 | 62.8419 83.8045 -118
197 | 60.6934 84.2342 -118
198 | 60.0489 84.3262 -118
199 | 58.545 84.5411 -118
200 | 56.3965 84.848 -118
201 | 54.2481 85.0935 -118
202 | 52.0997 85.2513 -118
203 | 49.9512 85.3706 -118
204 | 47.8028 85.3706 -118
205 | 45.6543 85.3706 -118
206 | 43.5059 85.2513 -118
207 | 41.3575 85.0722 -118
208 | 39.209 84.8335 -118
209 | 37.0606 84.5351 -118
210 | 35.8073 84.3262 -118
211 | 34.9122 84.1728 -118
212 | 32.7637 83.7431 -118
213 | 30.6153 83.252 -118
214 | 28.4668 82.7447 -118
215 | 26.4258 82.1778 -118
216 | 26.3184 82.1471 -118
217 | 24.17 81.6108 -118
218 | 22.0215 81.0141 -118
219 | 19.8731 80.4769 -118
220 | 18.2618 80.0294 -118
221 | 17.7246 79.8802 -118
222 | 15.5762 79.3431 -118
223 | 13.4278 78.8324 -118
224 | 11.2793 78.3413 -118
225 | 9.13089 77.9108 -118
226 | 8.97743 77.8809 -118
227 | 6.98246 77.4819 -118
228 | 4.83402 77.1946 -118
229 | 2.68558 77.0753 -118
230 | 0.537142 77.0522 -118
231 | -1.6113 77.2364 -118
232 | -3.75973 77.4819 -118
233 | -5.50534 77.8809 -118
234 | -5.90817 77.973 -118
235 | -8.05661 78.4641 -118
236 | -10.205 79.0779 -118
237 | -12.3535 79.6917 -118
238 | -13.4277 80.0294 -118
239 | -14.5019 80.367 -118
240 | -16.6504 80.9808 -118
241 | -18.7988 81.5946 -118
242 | -20.9472 82.1471 -118
243 | -21.0666 82.1778 -118
244 | -23.0957 82.6996 -118
245 | -25.2441 83.1292 -118
246 | -27.3926 83.5589 -118
247 | -29.541 83.9886 -118
248 | -31.5104 84.3262 -118
249 | -31.6894 84.3569 -118
250 | -33.8379 84.6638 -118
251 | -35.9863 84.9708 -118
252 | -38.1347 85.1916 -118
253 | -40.2832 85.4303 -118
254 | -42.4316 85.6327 -118
255 | -44.5801 85.7884 -118
256 | -46.7285 85.923 -118
257 | -48.8769 85.9811 -118
258 | -51.0254 86.0392 -118
259 | -53.1738 86.0392 -118
260 | -55.3223 85.9811 -118
261 | -57.4707 85.865 -118
262 | -59.6191 85.6908 -118
263 | -61.7676 85.49 -118
264 | -63.916 85.1916 -118
265 | -66.0644 84.8932 -118
266 | -68.2129 84.4797 -118
267 | -68.8843 84.3262 -118
268 | -70.3613 83.9886 -118
269 | -72.5098 83.4362 -118
270 | -74.6582 82.7781 -118
271 | -76.359 82.1778 -118
272 | -76.8066 82.0198 -118
273 | -78.9551 81.1984 -118
274 | -81.1035 80.2572 -118
275 | -81.5735 80.0294 -118
276 | -83.252 79.1901 -118
277 | -85.4004 77.9849 -118
278 | -85.57 77.8809 -118
279 | -87.5488 76.6681 -118
280 | -88.93 75.7325 -118
281 | -89.6973 75.2127 -118
282 | -91.8457 73.6915 -118
283 | -91.9922 73.584 -118
284 | -93.9941 72.1159 -118
285 | -94.8815 71.4356 -118
286 | -96.1426 70.4688 -118
287 | -97.6196 69.2872 -118
288 | -98.291 68.7315 -118
289 | -100.216 67.1387 -118
290 | -100.439 66.9469 -118
291 | -102.588 65.0287 -118
292 | -102.629 64.9903 -118
293 | -104.736 63.0337 -118
294 | -104.935 62.8419 -118
295 | -106.885 60.8923 -118
296 | -107.084 60.6934 -118
297 | -109.033 58.7439 -118
298 | -109.225 58.545 -118
299 | -111.143 56.3965 -118
300 | -111.182 56.3536 -118
301 | -113.062 54.2481 -118
302 | -113.33 53.9348 -118
303 | -114.798 52.0997 -118
304 | -115.479 51.2123 -118
305 | -116.445 49.9512 -118
306 | -117.627 48.3399 -118
307 | -118.021 47.8028 -118
308 | -119.464 45.6543 -118
309 | -119.775 45.1709 -118
310 | -120.85 43.5059 -118
311 | -121.924 41.6559 -118
312 | -122.092 41.3575 -118
313 | -123.193 39.209 -118
314 | -124.072 37.3963 -118
315 | -124.235 37.0606 -118
316 | -125.212 34.9122 -118
317 | -126.221 32.8309 -118
318 | -126.253 32.7637 -118
319 | -127.23 30.6153 -118
320 | -128.268 28.4668 -118
321 | -128.369 28.252 -118
322 | -129.248 26.3184 -118
323 | -130.16 24.17 -118
324 | -130.518 23.261 -118
325 | -130.992 22.0215 -118
326 | -131.776 19.8731 -118
327 | -132.508 17.7246 -118
328 | -132.666 17.2364 -118
329 | -133.203 15.5762 -118
330 | -133.863 13.4278 -118
331 | -134.477 11.2793 -118
332 | -134.814 10.0977 -118
333 | -135.099 9.13089 -118
334 | -135.705 6.98246 -118
335 | -136.257 4.83402 -118
336 | -136.809 2.68558 -118
337 | -136.963 2.01419 -118
338 | -137.301 0.537142 -118
339 | -137.792 -1.6113 -118
340 | -138.246 -3.75973 -118
341 | -138.664 -5.90817 -118
342 | -139.081 -8.05661 -118
343 | -139.111 -8.23565 -118
344 | -139.449 -10.205 -118
345 | -139.817 -12.3535 -118
346 | -140.156 -14.5019 -118
347 | -140.514 -16.6504 -118
348 | -140.812 -18.7988 -118
349 | -141.106 -20.9472 -118
350 | -141.26 -22.29 -118
351 | -141.352 -23.0957 -118
352 | -141.475 -25.2441 -118
353 | -141.536 -27.3926 -118
354 | -141.475 -29.541 -118
355 | -141.349 -31.6894 -118
356 | -141.26 -32.334 -118
357 | -141.051 -33.8379 -118
358 | -140.693 -35.9863 -118
359 | -140.308 -38.1347 -118
360 | -139.817 -40.2832 -118
361 | -139.265 -42.4316 -118
362 | -139.111 -42.9199 -118
363 | -138.59 -44.5801 -118
364 | -137.879 -46.7285 -118
365 | -137.126 -48.8769 -118
366 | -136.963 -49.2901 -118
367 | -136.279 -51.0254 -118
368 | -135.368 -53.1738 -118
369 | -134.814 -54.3913 -118
370 | -134.378 -55.3223 -118
371 | -133.285 -57.4707 -118
372 | -132.666 -58.6046 -118
373 | -132.095 -59.6191 -118
374 | -130.829 -61.7676 -118
375 | -130.518 -62.251 -118
376 | -129.443 -63.916 -118
377 | -128.369 -65.5018 -118
378 | -127.975 -66.0644 -118
379 | -126.4 -68.2129 -118
380 | -126.221 -68.4464 -118
381 | -124.702 -70.3613 -118
382 | -124.072 -71.1553 -118
383 | -122.96 -72.5098 -118
384 | -121.924 -73.6253 -118
385 | -120.891 -74.6582 -118
386 | -119.775 -75.7324 -118
387 | -118.394 -76.8066 -118
388 | -117.627 -77.4034 -118
389 | -115.479 -78.7561 -118
390 | -115.031 -78.9551 -118
391 | -113.33 -79.7401 -118
392 | -111.182 -80.5898 -118
393 | -109.494 -81.1035 -118
394 | -109.033 -81.2731 -118
395 | -106.885 -81.748 -118
396 | -104.736 -82.1777 -118
397 | -102.588 -82.5806 -118
398 | -100.439 -82.7148 -118
399 | -98.291 -82.9834 -118
400 | -97.2168 -83.252 -118
401 | -96.1426 -83.61 -118
402 | -93.9941 -83.7891 -118
403 | -91.8457 -84.3262 -118
404 | -90.7715 -85.4004 -118
405 | -89.6973 -86.4746 -118
406 | -87.5488 -86.4746 -118
407 | -86.4746 -87.5488 -118
408 | -85.4004 -88.623 -118
409 | -83.252 -88.623 -118
410 | -82.1777 -89.6973 -118
411 | -81.1035 -90.7715 -118
412 | -78.9551 -90.7715 -118
413 | -77.8809 -91.8457 -118
414 | -76.8066 -92.9199 -118
415 | -74.6582 -92.9199 -118
416 | -73.584 -93.9941 -118
417 | -72.5098 -95.0684 -118
418 | -70.3613 -95.0684 -118
419 | -69.2871 -96.1426 -118
420 | -68.2129 -97.2168 -118
421 | -66.0644 -97.2168 -118
422 | -63.916 -97.2168 -118
423 | -62.8418 -98.291 -118
424 | -61.7676 -99.3652 -118
425 | -59.6191 -99.3652 -118
426 | -57.4707 -99.3652 -118
427 | -55.3223 -99.3652 -118
428 | -54.248 -100.439 -118
429 | -53.1738 -101.514 -118
430 | -51.0254 -101.514 -118
431 | -48.8769 -101.514 -118
432 | -46.7285 -101.514 -118
433 | -44.5801 -101.514 -118
434 | -43.5058 -102.588 -118
435 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_45.txt:
--------------------------------------------------------------------------------
1 | 6.98246 -119.949 -8
2 | 9.13089 -120.098 -8
3 | 11.2793 -120.313 -8
4 | 13.4278 -120.572 -8
5 | 15.5762 -120.78 -8
6 | 17.7246 -120.988 -8
7 | 19.8731 -121.152 -8
8 | 22.0215 -121.286 -8
9 | 24.17 -121.37 -8
10 | 26.3184 -121.42 -8
11 | 28.4668 -121.487 -8
12 | 30.6153 -121.436 -8
13 | 32.7637 -121.42 -8
14 | 34.9122 -121.305 -8
15 | 37.0606 -121.175 -8
16 | 39.209 -120.95 -8
17 | 41.3575 -120.682 -8
18 | 43.5059 -120.364 -8
19 | 45.6543 -120.01 -8
20 | 46.9076 -119.775 -8
21 | 47.8028 -119.596 -8
22 | 49.9512 -119.095 -8
23 | 52.0997 -118.632 -8
24 | 54.2481 -118.077 -8
25 | 55.9937 -117.627 -8
26 | 56.3965 -117.52 -8
27 | 58.545 -116.947 -8
28 | 60.6934 -116.345 -8
29 | 62.8419 -115.729 -8
30 | 63.7818 -115.479 -8
31 | 64.9903 -115.145 -8
32 | 67.1387 -114.512 -8
33 | 69.2872 -113.85 -8
34 | 71.0775 -113.33 -8
35 | 71.4356 -113.223 -8
36 | 73.584 -112.578 -8
37 | 75.7325 -111.909 -8
38 | 77.8809 -111.216 -8
39 | 77.9883 -111.182 -8
40 | 80.0294 -110.501 -8
41 | 82.1778 -109.714 -8
42 | 84.0333 -109.033 -8
43 | 84.3262 -108.926 -8
44 | 86.4747 -108.066 -8
45 | 88.6231 -107.197 -8
46 | 89.3137 -106.885 -8
47 | 90.7715 -106.204 -8
48 | 92.92 -105.202 -8
49 | 93.7928 -104.736 -8
50 | 95.0684 -104.056 -8
51 | 97.2169 -102.847 -8
52 | 97.6592 -102.588 -8
53 | 99.3653 -101.588 -8
54 | 101.215 -100.439 -8
55 | 101.514 -100.241 -8
56 | 103.662 -98.8082 -8
57 | 104.397 -98.291 -8
58 | 105.811 -97.2964 -8
59 | 107.368 -96.1426 -8
60 | 107.959 -95.6881 -8
61 | 110.107 -94.0339 -8
62 | 110.156 -93.9941 -8
63 | 112.256 -92.2175 -8
64 | 112.695 -91.8457 -8
65 | 114.404 -90.3418 -8
66 | 115.076 -89.6973 -8
67 | 116.553 -88.2202 -8
68 | 117.224 -87.5488 -8
69 | 118.701 -85.9375 -8
70 | 119.174 -85.4004 -8
71 | 120.85 -83.4961 -8
72 | 121.056 -83.252 -8
73 | 122.792 -81.1035 -8
74 | 122.998 -80.835 -8
75 | 124.391 -78.9551 -8
76 | 125.147 -77.8809 -8
77 | 125.902 -76.8066 -8
78 | 127.295 -74.7179 -8
79 | 127.333 -74.6582 -8
80 | 128.638 -72.5098 -8
81 | 129.443 -71.0998 -8
82 | 129.851 -70.3613 -8
83 | 130.962 -68.2129 -8
84 | 131.592 -66.9954 -8
85 | 132.057 -66.0644 -8
86 | 133.06 -63.916 -8
87 | 133.74 -62.4581 -8
88 | 134.063 -61.7676 -8
89 | 134.953 -59.6191 -8
90 | 135.781 -57.4707 -8
91 | 135.889 -57.1777 -8
92 | 136.547 -55.3223 -8
93 | 137.24 -53.1738 -8
94 | 137.864 -51.0254 -8
95 | 138.037 -50.354 -8
96 | 138.406 -48.8769 -8
97 | 138.876 -46.7285 -8
98 | 139.279 -44.5801 -8
99 | 139.666 -42.4316 -8
100 | 139.943 -40.2832 -8
101 | 140.186 -38.4033 -8
102 | 140.22 -38.1347 -8
103 | 140.428 -35.9863 -8
104 | 140.567 -33.8379 -8
105 | 140.756 -31.6894 -8
106 | 140.844 -29.541 -8
107 | 140.958 -27.3926 -8
108 | 140.983 -25.2441 -8
109 | 141.025 -23.0957 -8
110 | 140.983 -20.9472 -8
111 | 140.913 -18.7988 -8
112 | 140.844 -16.6504 -8
113 | 140.705 -14.5019 -8
114 | 140.58 -12.3535 -8
115 | 140.508 -10.205 -8
116 | 140.428 -8.05661 -8
117 | 140.359 -5.90817 -8
118 | 140.29 -3.75973 -8
119 | 140.22 -1.6113 -8
120 | 140.186 -1.07419 -8
121 | 140.085 0.537142 -8
122 | 139.951 2.68558 -8
123 | 139.816 4.83402 -8
124 | 139.615 6.98246 -8
125 | 139.346 9.13089 -8
126 | 139.078 11.2793 -8
127 | 138.742 13.4278 -8
128 | 138.474 15.5762 -8
129 | 138.141 17.7246 -8
130 | 138.037 18.5303 -8
131 | 137.864 19.8731 -8
132 | 137.517 22.0215 -8
133 | 137.171 24.17 -8
134 | 136.795 26.3184 -8
135 | 136.392 28.4668 -8
136 | 135.923 30.6153 -8
137 | 135.889 30.7687 -8
138 | 135.438 32.7637 -8
139 | 134.915 34.9122 -8
140 | 134.329 37.0606 -8
141 | 133.775 39.209 -8
142 | 133.74 39.3284 -8
143 | 133.151 41.3575 -8
144 | 132.458 43.5059 -8
145 | 131.765 45.6543 -8
146 | 131.592 46.1915 -8
147 | 131.055 47.8028 -8
148 | 130.31 49.9512 -8
149 | 129.479 52.0997 -8
150 | 129.443 52.1892 -8
151 | 128.646 54.2481 -8
152 | 127.815 56.3965 -8
153 | 127.295 57.636 -8
154 | 126.901 58.545 -8
155 | 125.97 60.6934 -8
156 | 125.147 62.4582 -8
157 | 124.968 62.8419 -8
158 | 123.924 64.9903 -8
159 | 122.998 66.6688 -8
160 | 122.739 67.1387 -8
161 | 121.502 69.2872 -8
162 | 120.85 70.3017 -8
163 | 120.094 71.4356 -8
164 | 118.701 73.4144 -8
165 | 118.577 73.584 -8
166 | 116.842 75.7325 -8
167 | 116.553 76.0594 -8
168 | 114.877 77.8809 -8
169 | 114.404 78.3733 -8
170 | 112.676 80.0294 -8
171 | 112.256 80.4161 -8
172 | 110.159 82.1778 -8
173 | 110.107 82.2176 -8
174 | 107.959 83.809 -8
175 | 107.183 84.3262 -8
176 | 105.811 85.1782 -8
177 | 103.662 86.3635 -8
178 | 103.432 86.4747 -8
179 | 101.514 87.3699 -8
180 | 99.3653 88.3008 -8
181 | 98.5596 88.6231 -8
182 | 97.2169 89.1429 -8
183 | 95.0684 89.9052 -8
184 | 92.92 90.529 -8
185 | 92.0845 90.7715 -8
186 | 90.7715 91.1527 -8
187 | 88.6231 91.6779 -8
188 | 86.4747 92.1923 -8
189 | 84.3262 92.6081 -8
190 | 82.9451 92.92 -8
191 | 82.1778 93.0878 -8
192 | 80.0294 93.4398 -8
193 | 77.8809 93.8264 -8
194 | 75.7325 94.2021 -8
195 | 73.584 94.4977 -8
196 | 71.4356 94.8259 -8
197 | 69.2872 95.0338 -8
198 | 69.0186 95.0684 -8
199 | 67.1387 95.311 -8
200 | 64.9903 95.5189 -8
201 | 62.8419 95.7961 -8
202 | 60.6934 96.1091 -8
203 | 58.545 96.3776 -8
204 | 56.3965 96.5984 -8
205 | 54.2481 96.8588 -8
206 | 52.0997 97.0541 -8
207 | 49.9512 97.1843 -8
208 | 49.4141 97.2169 -8
209 | 47.8028 97.3116 -8
210 | 45.6543 97.3796 -8
211 | 43.5059 97.438 -8
212 | 41.3575 97.438 -8
213 | 39.209 97.3748 -8
214 | 37.0606 97.2494 -8
215 | 36.5235 97.2169 -8
216 | 34.9122 97.1162 -8
217 | 32.7637 96.8588 -8
218 | 30.6153 96.5984 -8
219 | 28.4668 96.3105 -8
220 | 26.3184 96.0419 -8
221 | 24.17 95.7268 -8
222 | 22.0215 95.4496 -8
223 | 19.8731 95.1724 -8
224 | 19.0674 95.0684 -8
225 | 17.7246 94.8952 -8
226 | 15.5762 94.6179 -8
227 | 13.4278 94.3635 -8
228 | 11.2793 94.0635 -8
229 | 9.13089 93.7863 -8
230 | 6.98246 93.5091 -8
231 | 4.83402 93.2423 -8
232 | 2.68558 93.099 -8
233 | 0.537142 92.957 -8
234 | -0.537078 92.92 -8
235 | -1.6113 92.8842 -8
236 | -2.68552 92.92 -8
237 | -3.75973 92.9558 -8
238 | -5.90817 93.0274 -8
239 | -8.05661 93.2319 -8
240 | -10.205 93.4571 -8
241 | -12.3535 93.7863 -8
242 | -14.5019 94.1328 -8
243 | -16.6504 94.4793 -8
244 | -18.7988 94.8259 -8
245 | -20.6787 95.0684 -8
246 | -20.9472 95.1031 -8
247 | -23.0957 95.3803 -8
248 | -25.2441 95.7062 -8
249 | -27.3926 96.0419 -8
250 | -29.541 96.338 -8
251 | -31.6894 96.6635 -8
252 | -33.8379 96.9147 -8
253 | -35.9863 97.1162 -8
254 | -37.5976 97.2169 -8
255 | -38.1347 97.2504 -8
256 | -40.2832 97.3847 -8
257 | -42.4316 97.4594 -8
258 | -44.5801 97.5287 -8
259 | -46.7285 97.598 -8
260 | -48.8769 97.7204 -8
261 | -51.0254 97.7204 -8
262 | -53.1738 97.7204 -8
263 | -55.3223 97.6533 -8
264 | -57.4707 97.519 -8
265 | -59.6191 97.3208 -8
266 | -60.6933 97.2169 -8
267 | -61.7676 97.1129 -8
268 | -63.916 96.8357 -8
269 | -66.0644 96.4892 -8
270 | -68.2129 96.1426 -8
271 | -70.3613 95.7961 -8
272 | -72.5098 95.4496 -8
273 | -74.6582 95.1031 -8
274 | -74.8372 95.0684 -8
275 | -76.8066 94.6873 -8
276 | -78.9551 94.3407 -8
277 | -81.1035 93.9249 -8
278 | -83.252 93.4907 -8
279 | -85.4004 92.9546 -8
280 | -85.5538 92.92 -8
281 | -87.5488 92.4695 -8
282 | -89.6973 91.9151 -8
283 | -91.8457 91.3606 -8
284 | -93.8748 90.7715 -8
285 | -93.9941 90.7357 -8
286 | -96.1426 90.0439 -8
287 | -98.291 89.2815 -8
288 | -99.861 88.6231 -8
289 | -100.439 88.3725 -8
290 | -102.588 87.3699 -8
291 | -104.266 86.4747 -8
292 | -104.736 86.2154 -8
293 | -106.885 84.9017 -8
294 | -107.733 84.3262 -8
295 | -109.033 83.376 -8
296 | -110.517 82.1778 -8
297 | -111.182 81.6192 -8
298 | -112.91 80.0294 -8
299 | -113.33 79.609 -8
300 | -114.986 77.8809 -8
301 | -115.479 77.3182 -8
302 | -116.759 75.7325 -8
303 | -117.627 74.6583 -8
304 | -118.433 73.584 -8
305 | -119.775 71.6052 -8
306 | -119.89 71.4356 -8
307 | -121.22 69.2872 -8
308 | -121.924 68.0866 -8
309 | -122.479 67.1387 -8
310 | -123.591 64.9903 -8
311 | -124.072 63.9928 -8
312 | -124.609 62.8419 -8
313 | -125.54 60.6934 -8
314 | -126.221 58.9926 -8
315 | -126.394 58.545 -8
316 | -127.188 56.3965 -8
317 | -127.919 54.2481 -8
318 | -128.369 52.8516 -8
319 | -128.612 52.0997 -8
320 | -129.305 49.9512 -8
321 | -129.929 47.8028 -8
322 | -130.518 45.7737 -8
323 | -130.551 45.6543 -8
324 | -131.107 43.5059 -8
325 | -131.661 41.3575 -8
326 | -132.146 39.209 -8
327 | -132.666 37.1949 -8
328 | -132.7 37.0606 -8
329 | -133.17 34.9122 -8
330 | -133.602 32.7637 -8
331 | -134.042 30.6153 -8
332 | -134.503 28.4668 -8
333 | -134.814 26.8555 -8
334 | -134.918 26.3184 -8
335 | -135.334 24.17 -8
336 | -135.788 22.0215 -8
337 | -136.191 19.8731 -8
338 | -136.651 17.7246 -8
339 | -136.963 16.1133 -8
340 | -137.067 15.5762 -8
341 | -137.534 13.4278 -8
342 | -137.968 11.2793 -8
343 | -138.384 9.13089 -8
344 | -138.869 6.98246 -8
345 | -139.111 5.7292 -8
346 | -139.285 4.83402 -8
347 | -139.749 2.68558 -8
348 | -140.186 0.537142 -8
349 | -140.601 -1.6113 -8
350 | -141.017 -3.75973 -8
351 | -141.26 -5.01299 -8
352 | -141.428 -5.90817 -8
353 | -141.83 -8.05661 -8
354 | -142.233 -10.205 -8
355 | -142.569 -12.3535 -8
356 | -142.838 -14.5019 -8
357 | -143.106 -16.6504 -8
358 | -143.304 -18.7988 -8
359 | -143.374 -20.9472 -8
360 | -143.408 -22.0215 -8
361 | -143.443 -23.0957 -8
362 | -143.443 -25.2441 -8
363 | -143.442 -27.3926 -8
364 | -143.408 -28.4668 -8
365 | -143.374 -29.541 -8
366 | -143.304 -31.6894 -8
367 | -143.106 -33.8379 -8
368 | -142.905 -35.9863 -8
369 | -142.636 -38.1347 -8
370 | -142.3 -40.2832 -8
371 | -141.943 -42.4316 -8
372 | -141.562 -44.5801 -8
373 | -141.26 -45.9612 -8
374 | -141.087 -46.7285 -8
375 | -140.555 -48.8769 -8
376 | -139.978 -51.0254 -8
377 | -139.354 -53.1738 -8
378 | -139.111 -53.9258 -8
379 | -138.661 -55.3223 -8
380 | -137.899 -57.4707 -8
381 | -137.07 -59.6191 -8
382 | -136.963 -59.8877 -8
383 | -136.211 -61.7676 -8
384 | -135.28 -63.916 -8
385 | -134.814 -64.9135 -8
386 | -134.259 -66.0644 -8
387 | -133.148 -68.2129 -8
388 | -132.666 -69.1439 -8
389 | -132.036 -70.3613 -8
390 | -130.851 -72.5098 -8
391 | -130.518 -73.0785 -8
392 | -129.558 -74.6582 -8
393 | -128.369 -76.5082 -8
394 | -128.177 -76.8066 -8
395 | -126.738 -78.9551 -8
396 | -126.221 -79.6533 -8
397 | -125.105 -81.1035 -8
398 | -124.072 -82.3823 -8
399 | -123.37 -83.252 -8
400 | -121.924 -84.8866 -8
401 | -121.451 -85.4004 -8
402 | -119.775 -87.2219 -8
403 | -119.462 -87.5488 -8
404 | -117.627 -89.384 -8
405 | -117.314 -89.6973 -8
406 | -115.479 -91.459 -8
407 | -115.039 -91.8457 -8
408 | -113.33 -93.3496 -8
409 | -112.563 -93.9941 -8
410 | -111.182 -95.0684 -8
411 | -109.801 -96.1426 -8
412 | -109.033 -96.7394 -8
413 | -106.885 -98.2512 -8
414 | -106.828 -98.291 -8
415 | -104.736 -99.7105 -8
416 | -103.602 -100.439 -8
417 | -102.588 -101.069 -8
418 | -100.439 -102.396 -8
419 | -100.104 -102.588 -8
420 | -98.291 -103.588 -8
421 | -96.2097 -104.736 -8
422 | -96.1426 -104.773 -8
423 | -93.9941 -105.885 -8
424 | -91.9224 -106.885 -8
425 | -91.8457 -106.921 -8
426 | -89.6973 -107.852 -8
427 | -87.5488 -108.7 -8
428 | -86.7432 -109.033 -8
429 | -85.4004 -109.553 -8
430 | -83.252 -110.286 -8
431 | -81.1035 -111.071 -8
432 | -80.7454 -111.182 -8
433 | -78.9551 -111.719 -8
434 | -76.8066 -112.363 -8
435 | -74.6582 -112.985 -8
436 | -73.4497 -113.33 -8
437 | -72.5098 -113.573 -8
438 | -70.3613 -114.082 -8
439 | -68.2129 -114.627 -8
440 | -66.0644 -115.057 -8
441 | -64.095 -115.479 -8
442 | -63.916 -115.514 -8
443 | -61.7676 -115.944 -8
444 | -59.6191 -116.33 -8
445 | -57.4707 -116.701 -8
446 | -55.3223 -117.051 -8
447 | -53.1738 -117.282 -8
448 | -51.0254 -117.586 -8
449 | -50.6673 -117.627 -8
450 | -48.8769 -117.806 -8
451 | -46.7285 -117.96 -8
452 | -44.5801 -118.183 -8
453 | -42.4316 -118.405 -8
454 | -40.2832 -118.594 -8
455 | -38.1347 -118.701 -8
456 | -35.9863 -118.809 -8
457 | -33.8379 -118.88 -8
458 | -31.6894 -118.88 -8
459 | -29.541 -118.88 -8
460 | -27.3926 -118.88 -8
461 | -25.2441 -118.88 -8
462 | -23.0957 -118.88 -8
463 | -20.9472 -118.809 -8
464 | -18.7988 -118.809 -8
465 | -16.6504 -118.809 -8
466 | -14.5019 -118.809 -8
467 | -12.3535 -118.809 -8
468 | -10.205 -118.88 -8
469 | -8.05661 -118.952 -8
470 | -5.90817 -119.048 -8
471 | -3.75973 -119.186 -8
472 | -1.6113 -119.31 -8
473 | 0.537142 -119.453 -8
474 | 2.68558 -119.596 -8
475 | 4.83402 -119.74 -8
476 | 5.19209 -119.775 -8
477 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_47.txt:
--------------------------------------------------------------------------------
1 | 4.83402 -119.81 -3
2 | 6.98246 -119.949 -3
3 | 9.13089 -120.157 -3
4 | 11.2793 -120.364 -3
5 | 13.4278 -120.572 -3
6 | 15.5762 -120.816 -3
7 | 17.7246 -121.017 -3
8 | 19.8731 -121.219 -3
9 | 22.0215 -121.353 -3
10 | 24.17 -121.487 -3
11 | 26.3184 -121.501 -3
12 | 28.4668 -121.487 -3
13 | 30.6153 -121.42 -3
14 | 32.7637 -121.286 -3
15 | 34.9122 -121.085 -3
16 | 37.0606 -120.816 -3
17 | 39.209 -120.547 -3
18 | 41.3575 -120.226 -3
19 | 43.5059 -119.879 -3
20 | 44.043 -119.775 -3
21 | 45.6543 -119.464 -3
22 | 47.8028 -119.023 -3
23 | 49.9512 -118.563 -3
24 | 52.0997 -118.008 -3
25 | 53.7877 -117.627 -3
26 | 54.2481 -117.52 -3
27 | 56.3965 -116.899 -3
28 | 58.545 -116.345 -3
29 | 60.6934 -115.721 -3
30 | 61.6334 -115.479 -3
31 | 62.8419 -115.156 -3
32 | 64.9903 -114.543 -3
33 | 67.1387 -113.919 -3
34 | 69.1678 -113.33 -3
35 | 69.2872 -113.294 -3
36 | 71.4356 -112.602 -3
37 | 73.584 -111.979 -3
38 | 75.7325 -111.286 -3
39 | 76.0547 -111.182 -3
40 | 77.8809 -110.573 -3
41 | 80.0294 -109.83 -3
42 | 82.1778 -109.068 -3
43 | 82.2673 -109.033 -3
44 | 84.3262 -108.21 -3
45 | 86.4747 -107.405 -3
46 | 87.7142 -106.885 -3
47 | 88.6231 -106.491 -3
48 | 90.7715 -105.56 -3
49 | 92.5363 -104.736 -3
50 | 92.92 -104.557 -3
51 | 95.0684 -103.483 -3
52 | 96.7469 -102.588 -3
53 | 97.2169 -102.329 -3
54 | 99.3653 -101.092 -3
55 | 100.44 -100.439 -3
56 | 101.514 -99.7873 -3
57 | 103.662 -98.3294 -3
58 | 103.716 -98.291 -3
59 | 105.811 -96.7948 -3
60 | 106.68 -96.1426 -3
61 | 107.959 -95.1479 -3
62 | 109.375 -93.9941 -3
63 | 110.107 -93.3744 -3
64 | 111.836 -91.8457 -3
65 | 112.256 -91.459 -3
66 | 114.171 -89.6973 -3
67 | 114.404 -89.4824 -3
68 | 116.419 -87.5488 -3
69 | 116.553 -87.4087 -3
70 | 118.477 -85.4004 -3
71 | 118.701 -85.1562 -3
72 | 120.377 -83.252 -3
73 | 120.85 -82.7148 -3
74 | 122.213 -81.1035 -3
75 | 122.998 -80.1316 -3
76 | 123.913 -78.9551 -3
77 | 125.147 -77.29 -3
78 | 125.492 -76.8066 -3
79 | 126.937 -74.6582 -3
80 | 127.295 -74.0895 -3
81 | 128.254 -72.5098 -3
82 | 129.443 -70.4285 -3
83 | 129.48 -70.3613 -3
84 | 130.625 -68.2129 -3
85 | 131.592 -66.2793 -3
86 | 131.699 -66.0644 -3
87 | 132.702 -63.916 -3
88 | 133.633 -61.7676 -3
89 | 133.74 -61.5197 -3
90 | 134.537 -59.6191 -3
91 | 135.352 -57.4707 -3
92 | 135.889 -55.8594 -3
93 | 136.062 -55.3223 -3
94 | 136.755 -53.1738 -3
95 | 137.379 -51.0254 -3
96 | 138.001 -48.8769 -3
97 | 138.037 -48.7235 -3
98 | 138.474 -46.7285 -3
99 | 138.903 -44.5801 -3
100 | 139.279 -42.4316 -3
101 | 139.615 -40.2832 -3
102 | 139.884 -38.1347 -3
103 | 140.082 -35.9863 -3
104 | 140.186 -34.9121 -3
105 | 140.29 -33.8379 -3
106 | 140.428 -31.6894 -3
107 | 140.508 -29.541 -3
108 | 140.58 -27.3926 -3
109 | 140.651 -25.2441 -3
110 | 140.651 -23.0957 -3
111 | 140.636 -20.9472 -3
112 | 140.58 -18.7988 -3
113 | 140.508 -16.6504 -3
114 | 140.436 -14.5019 -3
115 | 140.436 -12.3535 -3
116 | 140.365 -10.205 -3
117 | 140.365 -8.05661 -3
118 | 140.359 -5.90817 -3
119 | 140.359 -3.75973 -3
120 | 140.29 -1.6113 -3
121 | 140.22 0.537142 -3
122 | 140.186 1.07425 -3
123 | 140.082 2.68558 -3
124 | 139.943 4.83402 -3
125 | 139.682 6.98246 -3
126 | 139.481 9.13089 -3
127 | 139.212 11.2793 -3
128 | 138.944 13.4278 -3
129 | 138.626 15.5762 -3
130 | 138.349 17.7246 -3
131 | 138.072 19.8731 -3
132 | 138.037 20.1416 -3
133 | 137.795 22.0215 -3
134 | 137.467 24.17 -3
135 | 137.131 26.3184 -3
136 | 136.728 28.4668 -3
137 | 136.325 30.6153 -3
138 | 135.922 32.7637 -3
139 | 135.889 32.9172 -3
140 | 135.438 34.9122 -3
141 | 134.915 37.0606 -3
142 | 134.378 39.209 -3
143 | 133.775 41.3575 -3
144 | 133.74 41.4768 -3
145 | 133.17 43.5059 -3
146 | 132.565 45.6543 -3
147 | 131.904 47.8028 -3
148 | 131.592 48.7696 -3
149 | 131.198 49.9512 -3
150 | 130.448 52.0997 -3
151 | 129.694 54.2481 -3
152 | 129.443 54.8747 -3
153 | 128.854 56.3965 -3
154 | 128.047 58.545 -3
155 | 127.295 60.2803 -3
156 | 127.116 60.6934 -3
157 | 126.185 62.8419 -3
158 | 125.182 64.9903 -3
159 | 125.147 65.0619 -3
160 | 124.072 67.1387 -3
161 | 122.998 69.0857 -3
162 | 122.883 69.2872 -3
163 | 121.502 71.4356 -3
164 | 120.85 72.3967 -3
165 | 120.014 73.584 -3
166 | 118.701 75.2721 -3
167 | 118.329 75.7325 -3
168 | 116.553 77.8321 -3
169 | 116.508 77.8809 -3
170 | 114.404 79.9005 -3
171 | 114.264 80.0294 -3
172 | 112.256 81.7402 -3
173 | 111.665 82.1778 -3
174 | 110.107 83.2904 -3
175 | 108.496 84.3262 -3
176 | 107.959 84.6596 -3
177 | 105.811 85.845 -3
178 | 104.506 86.4747 -3
179 | 103.662 86.8686 -3
180 | 101.514 87.7995 -3
181 | 99.4548 88.6231 -3
182 | 99.3653 88.6578 -3
183 | 97.2169 89.3508 -3
184 | 95.0684 90.0439 -3
185 | 92.92 90.6676 -3
186 | 92.5619 90.7715 -3
187 | 90.7715 91.2751 -3
188 | 88.6231 91.8122 -3
189 | 86.4747 92.2822 -3
190 | 84.3262 92.7521 -3
191 | 83.5589 92.92 -3
192 | 82.1778 93.2221 -3
193 | 80.0294 93.5578 -3
194 | 77.8809 93.8935 -3
195 | 75.7325 94.2292 -3
196 | 73.584 94.4977 -3
197 | 71.4356 94.7663 -3
198 | 69.2872 95.0338 -3
199 | 68.9291 95.0684 -3
200 | 67.1387 95.2417 -3
201 | 64.9903 95.5189 -3
202 | 62.8419 95.7734 -3
203 | 60.6934 96.0419 -3
204 | 58.545 96.3105 -3
205 | 56.3965 96.579 -3
206 | 54.2481 96.7937 -3
207 | 52.0997 96.989 -3
208 | 49.9512 97.1192 -3
209 | 48.3399 97.2169 -3
210 | 47.8028 97.2494 -3
211 | 45.6543 97.3796 -3
212 | 43.5059 97.3796 -3
213 | 41.3575 97.3796 -3
214 | 39.209 97.3145 -3
215 | 37.5977 97.2169 -3
216 | 37.0606 97.1833 -3
217 | 34.9122 96.9239 -3
218 | 32.7637 96.7133 -3
219 | 30.6153 96.4448 -3
220 | 28.4668 96.1762 -3
221 | 26.3184 95.8654 -3
222 | 24.17 95.5882 -3
223 | 22.0215 95.311 -3
224 | 19.8731 95.102 -3
225 | 19.6045 95.0684 -3
226 | 17.7246 94.8334 -3
227 | 15.5762 94.632 -3
228 | 13.4278 94.3635 -3
229 | 11.2793 94.0278 -3
230 | 9.13089 93.7592 -3
231 | 6.98246 93.5091 -3
232 | 4.83402 93.2423 -3
233 | 2.68558 93.0932 -3
234 | 0.537142 92.9558 -3
235 | -0.537078 92.92 -3
236 | -1.6113 92.8842 -3
237 | -2.68552 92.92 -3
238 | -3.75973 92.9558 -3
239 | -5.90817 93.099 -3
240 | -8.05661 93.3139 -3
241 | -10.205 93.6477 -3
242 | -12.3535 93.9606 -3
243 | -14.5019 94.2963 -3
244 | -16.6504 94.6873 -3
245 | -18.7988 95.0338 -3
246 | -19.0136 95.0684 -3
247 | -20.9472 95.3803 -3
248 | -23.0957 95.7268 -3
249 | -25.2441 96.0733 -3
250 | -27.3926 96.4199 -3
251 | -29.541 96.7664 -3
252 | -31.6894 97.0436 -3
253 | -33.4798 97.2169 -3
254 | -33.8379 97.2515 -3
255 | -35.9863 97.4594 -3
256 | -38.1347 97.6673 -3
257 | -40.2832 97.8753 -3
258 | -42.4316 98.0561 -3
259 | -44.5801 98.1904 -3
260 | -46.7285 98.2575 -3
261 | -48.8769 98.2575 -3
262 | -51.0254 98.1904 -3
263 | -53.1738 98.0832 -3
264 | -55.3223 97.9446 -3
265 | -57.4707 97.7875 -3
266 | -59.6191 97.598 -3
267 | -61.7676 97.3901 -3
268 | -63.5579 97.2169 -3
269 | -63.916 97.1822 -3
270 | -66.0644 96.905 -3
271 | -68.2129 96.6278 -3
272 | -70.3613 96.2434 -3
273 | -72.5098 95.9077 -3
274 | -74.6582 95.572 -3
275 | -76.8066 95.2363 -3
276 | -77.7018 95.0684 -3
277 | -78.9551 94.8259 -3
278 | -81.1035 94.4793 -3
279 | -83.252 94.0635 -3
280 | -85.4004 93.6249 -3
281 | -87.5488 93.0932 -3
282 | -88.3161 92.92 -3
283 | -89.6973 92.6081 -3
284 | -91.8457 92.0537 -3
285 | -93.9941 91.4299 -3
286 | -96.1426 90.8051 -3
287 | -96.25 90.7715 -3
288 | -98.291 90.0912 -3
289 | -100.439 89.2815 -3
290 | -102.14 88.6231 -3
291 | -102.588 88.4379 -3
292 | -104.736 87.3699 -3
293 | -106.415 86.4747 -3
294 | -106.885 86.2061 -3
295 | -109.033 84.825 -3
296 | -109.731 84.3262 -3
297 | -111.182 83.2107 -3
298 | -112.402 82.1778 -3
299 | -113.33 81.3274 -3
300 | -114.685 80.0294 -3
301 | -115.479 79.2354 -3
302 | -116.725 77.8809 -3
303 | -117.627 76.8067 -3
304 | -118.462 75.7325 -3
305 | -119.775 73.8667 -3
306 | -119.967 73.584 -3
307 | -121.348 71.4356 -3
308 | -121.924 70.4285 -3
309 | -122.533 69.2872 -3
310 | -123.607 67.1387 -3
311 | -124.072 66.1412 -3
312 | -124.609 64.9903 -3
313 | -125.54 62.8419 -3
314 | -126.221 60.9864 -3
315 | -126.328 60.6934 -3
316 | -127.156 58.545 -3
317 | -127.849 56.3965 -3
318 | -128.369 54.7852 -3
319 | -128.542 54.2481 -3
320 | -129.235 52.0997 -3
321 | -129.859 49.9512 -3
322 | -130.482 47.8028 -3
323 | -130.518 47.6685 -3
324 | -131.021 45.6543 -3
325 | -131.558 43.5059 -3
326 | -132.077 41.3575 -3
327 | -132.562 39.209 -3
328 | -132.666 38.7487 -3
329 | -133.035 37.0606 -3
330 | -133.505 34.9122 -3
331 | -133.975 32.7637 -3
332 | -134.433 30.6153 -3
333 | -134.814 28.9272 -3
334 | -134.915 28.4668 -3
335 | -135.318 26.3184 -3
336 | -135.721 24.17 -3
337 | -136.097 22.0215 -3
338 | -136.497 19.8731 -3
339 | -136.852 17.7246 -3
340 | -136.963 17.1875 -3
341 | -137.285 15.5762 -3
342 | -137.715 13.4278 -3
343 | -138.145 11.2793 -3
344 | -138.63 9.13089 -3
345 | -139.074 6.98246 -3
346 | -139.111 6.80342 -3
347 | -139.493 4.83402 -3
348 | -139.839 2.68558 -3
349 | -140.255 0.537142 -3
350 | -140.601 -1.6113 -3
351 | -140.948 -3.75973 -3
352 | -141.224 -5.90817 -3
353 | -141.26 -6.17673 -3
354 | -141.51 -8.05661 -3
355 | -141.725 -10.205 -3
356 | -142.012 -12.3535 -3
357 | -142.26 -14.5019 -3
358 | -142.482 -16.6504 -3
359 | -142.779 -18.7988 -3
360 | -142.927 -20.9472 -3
361 | -143.063 -23.0957 -3
362 | -143.001 -25.2441 -3
363 | -142.909 -27.3926 -3
364 | -142.756 -29.541 -3
365 | -142.556 -31.6894 -3
366 | -142.37 -33.8379 -3
367 | -142.195 -35.9863 -3
368 | -142.012 -38.1347 -3
369 | -141.78 -40.2832 -3
370 | -141.502 -42.4316 -3
371 | -141.26 -43.9355 -3
372 | -141.152 -44.5801 -3
373 | -140.671 -46.7285 -3
374 | -140.186 -48.8769 -3
375 | -139.631 -51.0254 -3
376 | -139.111 -52.8157 -3
377 | -139.004 -53.1738 -3
378 | -138.314 -55.3223 -3
379 | -137.552 -57.4707 -3
380 | -136.963 -59.1308 -3
381 | -136.784 -59.6191 -3
382 | -135.889 -61.7676 -3
383 | -134.988 -63.916 -3
384 | -134.814 -64.2997 -3
385 | -133.991 -66.0644 -3
386 | -132.978 -68.2129 -3
387 | -132.666 -68.7816 -3
388 | -131.74 -70.3613 -3
389 | -130.518 -72.4466 -3
390 | -130.479 -72.5098 -3
391 | -129.175 -74.6582 -3
392 | -128.369 -75.9115 -3
393 | -127.772 -76.8066 -3
394 | -126.261 -78.9551 -3
395 | -126.221 -79.0088 -3
396 | -124.609 -81.1035 -3
397 | -124.072 -81.7685 -3
398 | -122.826 -83.252 -3
399 | -121.924 -84.2773 -3
400 | -120.936 -85.4004 -3
401 | -119.775 -86.6614 -3
402 | -118.925 -87.5488 -3
403 | -117.627 -88.8468 -3
404 | -116.74 -89.6973 -3
405 | -115.479 -90.9058 -3
406 | -114.453 -91.8457 -3
407 | -113.33 -92.834 -3
408 | -111.949 -93.9941 -3
409 | -111.182 -94.6139 -3
410 | -109.194 -96.1426 -3
411 | -109.033 -96.2619 -3
412 | -106.885 -97.6942 -3
413 | -105.99 -98.291 -3
414 | -104.736 -99.1265 -3
415 | -102.651 -100.439 -3
416 | -102.588 -100.478 -3
417 | -100.439 -101.752 -3
418 | -99.0295 -102.588 -3
419 | -98.291 -103.01 -3
420 | -96.1426 -104.161 -3
421 | -95.0684 -104.736 -3
422 | -93.9941 -105.292 -3
423 | -91.8457 -106.329 -3
424 | -90.6948 -106.885 -3
425 | -89.6973 -107.35 -3
426 | -87.5488 -108.281 -3
427 | -85.6689 -109.033 -3
428 | -85.4004 -109.141 -3
429 | -83.252 -110 -3
430 | -81.1035 -110.7 -3
431 | -79.707 -111.182 -3
432 | -78.9551 -111.424 -3
433 | -76.8066 -112.005 -3
434 | -74.6582 -112.626 -3
435 | -72.5098 -113.138 -3
436 | -71.8384 -113.33 -3
437 | -70.3613 -113.724 -3
438 | -68.2129 -114.212 -3
439 | -66.0644 -114.75 -3
440 | -63.916 -115.21 -3
441 | -62.6628 -115.479 -3
442 | -61.7676 -115.664 -3
443 | -59.6191 -116.108 -3
444 | -57.4707 -116.517 -3
445 | -55.3223 -116.849 -3
446 | -53.1738 -117.145 -3
447 | -51.0254 -117.435 -3
448 | -49.6826 -117.627 -3
449 | -48.8769 -117.734 -3
450 | -46.7285 -117.949 -3
451 | -44.5801 -118.164 -3
452 | -42.4316 -118.355 -3
453 | -40.2832 -118.563 -3
454 | -38.1347 -118.701 -3
455 | -35.9863 -118.84 -3
456 | -33.8379 -118.909 -3
457 | -31.6894 -118.978 -3
458 | -29.541 -118.978 -3
459 | -27.3926 -118.978 -3
460 | -25.2441 -118.978 -3
461 | -23.0957 -118.978 -3
462 | -20.9472 -118.978 -3
463 | -18.7988 -118.909 -3
464 | -16.6504 -118.909 -3
465 | -14.5019 -118.909 -3
466 | -12.3535 -118.936 -3
467 | -10.205 -119.003 -3
468 | -8.05661 -119.07 -3
469 | -5.90817 -119.205 -3
470 | -3.75973 -119.272 -3
471 | -1.6113 -119.406 -3
472 | 0.537142 -119.533 -3
473 | 2.68558 -119.671 -3
474 | 4.29691 -119.775 -3
475 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_49.txt:
--------------------------------------------------------------------------------
1 | 2.68558 -119.809 2
2 | 4.83402 -119.949 2
3 | 6.98246 -120.087 2
4 | 9.13089 -120.226 2
5 | 11.2793 -120.434 2
6 | 13.4278 -120.682 2
7 | 15.5762 -120.95 2
8 | 17.7246 -121.152 2
9 | 19.8731 -121.42 2
10 | 22.0215 -121.555 2
11 | 24.17 -121.689 2
12 | 26.3184 -121.751 2
13 | 28.4668 -121.681 2
14 | 30.6153 -121.473 2
15 | 32.7637 -121.196 2
16 | 34.9122 -120.85 2
17 | 37.0606 -120.503 2
18 | 39.209 -120.145 2
19 | 41.1784 -119.775 2
20 | 41.3575 -119.741 2
21 | 43.5059 -119.325 2
22 | 45.6543 -118.909 2
23 | 47.8028 -118.466 2
24 | 49.9512 -117.996 2
25 | 51.6393 -117.627 2
26 | 52.0997 -117.52 2
27 | 54.2481 -116.969 2
28 | 56.3965 -116.414 2
29 | 58.545 -115.86 2
30 | 60.022 -115.479 2
31 | 60.6934 -115.305 2
32 | 62.8419 -114.682 2
33 | 64.9903 -114.102 2
34 | 67.1387 -113.503 2
35 | 67.7355 -113.33 2
36 | 69.2872 -112.88 2
37 | 71.4356 -112.256 2
38 | 73.584 -111.632 2
39 | 74.9805 -111.182 2
40 | 75.7325 -110.939 2
41 | 77.8809 -110.275 2
42 | 80.0294 -109.553 2
43 | 81.6407 -109.033 2
44 | 82.1778 -108.854 2
45 | 84.3262 -108.028 2
46 | 86.4747 -107.197 2
47 | 87.2184 -106.885 2
48 | 88.6231 -106.276 2
49 | 90.7715 -105.325 2
50 | 91.989 -104.736 2
51 | 92.92 -104.255 2
52 | 95.0684 -103.144 2
53 | 96.0755 -102.588 2
54 | 97.2169 -101.936 2
55 | 99.3653 -100.699 2
56 | 99.7831 -100.439 2
57 | 101.514 -99.3269 2
58 | 103.125 -98.291 2
59 | 103.662 -97.9329 2
60 | 105.811 -96.4211 2
61 | 106.187 -96.1426 2
62 | 107.959 -94.7791 2
63 | 108.931 -93.9941 2
64 | 110.107 -93.0439 2
65 | 111.462 -91.8457 2
66 | 112.256 -91.1152 2
67 | 113.733 -89.6973 2
68 | 114.404 -89.0527 2
69 | 115.971 -87.5488 2
70 | 116.553 -86.9417 2
71 | 117.971 -85.4004 2
72 | 118.701 -84.6064 2
73 | 119.899 -83.252 2
74 | 120.85 -82.1289 2
75 | 121.717 -81.1035 2
76 | 122.998 -79.5178 2
77 | 123.436 -78.9551 2
78 | 124.948 -76.8066 2
79 | 125.147 -76.5239 2
80 | 126.413 -74.6582 2
81 | 127.295 -73.2048 2
82 | 127.717 -72.5098 2
83 | 128.962 -70.3613 2
84 | 129.443 -69.4885 2
85 | 130.147 -68.2129 2
86 | 131.258 -66.0644 2
87 | 131.592 -65.3739 2
88 | 132.272 -63.916 2
89 | 133.203 -61.7676 2
90 | 133.74 -60.5281 2
91 | 134.121 -59.6191 2
92 | 134.953 -57.4707 2
93 | 135.71 -55.3223 2
94 | 135.889 -54.7851 2
95 | 136.409 -53.1738 2
96 | 137.032 -51.0254 2
97 | 137.587 -48.8769 2
98 | 138.037 -47.1313 2
99 | 138.138 -46.7285 2
100 | 138.608 -44.5801 2
101 | 139.011 -42.4316 2
102 | 139.346 -40.2832 2
103 | 139.615 -38.1347 2
104 | 139.884 -35.9863 2
105 | 140.082 -33.8379 2
106 | 140.186 -32.2265 2
107 | 140.22 -31.6894 2
108 | 140.293 -29.541 2
109 | 140.365 -27.3926 2
110 | 140.365 -25.2441 2
111 | 140.371 -23.0957 2
112 | 140.436 -20.9472 2
113 | 140.365 -18.7988 2
114 | 140.365 -16.6504 2
115 | 140.365 -14.5019 2
116 | 140.297 -12.3535 2
117 | 140.297 -10.205 2
118 | 140.365 -8.05661 2
119 | 140.365 -5.90817 2
120 | 140.365 -3.75973 2
121 | 140.365 -1.6113 2
122 | 140.353 0.537142 2
123 | 140.219 2.68558 2
124 | 140.186 3.04365 2
125 | 140.018 4.83402 2
126 | 139.816 6.98246 2
127 | 139.615 9.13089 2
128 | 139.346 11.2793 2
129 | 139.078 13.4278 2
130 | 138.834 15.5762 2
131 | 138.608 17.7246 2
132 | 138.339 19.8731 2
133 | 138.072 22.0215 2
134 | 138.037 22.2901 2
135 | 137.795 24.17 2
136 | 137.467 26.3184 2
137 | 137.131 28.4668 2
138 | 136.795 30.6153 2
139 | 136.392 32.7637 2
140 | 135.923 34.9122 2
141 | 135.889 35.0912 2
142 | 135.508 37.0606 2
143 | 135.022 39.209 2
144 | 134.512 41.3575 2
145 | 133.983 43.5059 2
146 | 133.74 44.4458 2
147 | 133.428 45.6543 2
148 | 132.805 47.8028 2
149 | 132.181 49.9512 2
150 | 131.592 51.7774 2
151 | 131.488 52.0997 2
152 | 130.795 54.2481 2
153 | 130.033 56.3965 2
154 | 129.443 58.0567 2
155 | 129.264 58.545 2
156 | 128.439 60.6934 2
157 | 127.538 62.8419 2
158 | 127.295 63.379 2
159 | 126.543 64.9903 2
160 | 125.469 67.1387 2
161 | 125.147 67.743 2
162 | 124.264 69.2872 2
163 | 122.998 71.2566 2
164 | 122.883 71.4356 2
165 | 121.425 73.584 2
166 | 120.85 74.3513 2
167 | 119.734 75.7325 2
168 | 118.701 76.9001 2
169 | 117.761 77.8809 2
170 | 116.553 79.0894 2
171 | 115.527 80.0294 2
172 | 114.404 81.0176 2
173 | 112.954 82.1778 2
174 | 112.256 82.695 2
175 | 110.107 84.1344 2
176 | 109.772 84.3262 2
177 | 107.959 85.3264 2
178 | 105.811 86.4389 2
179 | 105.734 86.4747 2
180 | 103.662 87.4103 2
181 | 101.514 88.3008 2
182 | 100.635 88.6231 2
183 | 99.3653 89.0736 2
184 | 97.2169 89.7666 2
185 | 95.0684 90.4597 2
186 | 93.8599 90.7715 2
187 | 92.92 91.0141 2
188 | 90.7715 91.5436 2
189 | 88.6231 92.0136 2
190 | 86.4747 92.4695 2
191 | 84.3262 92.8853 2
192 | 84.1114 92.92 2
193 | 82.1778 93.2221 2
194 | 80.0294 93.5578 2
195 | 77.8809 93.8935 2
196 | 75.7325 94.1621 2
197 | 73.584 94.4977 2
198 | 71.4356 94.7663 2
199 | 69.2872 95.0338 2
200 | 68.9291 95.0684 2
201 | 67.1387 95.2363 2
202 | 64.9903 95.4496 2
203 | 62.8419 95.7268 2
204 | 60.6934 95.9748 2
205 | 58.545 96.2434 2
206 | 56.3965 96.5119 2
207 | 54.2481 96.7286 2
208 | 52.0997 96.8588 2
209 | 49.9512 96.989 2
210 | 47.8028 97.0589 2
211 | 45.6543 97.1192 2
212 | 43.5059 97.1221 2
213 | 41.3575 97.1192 2
214 | 39.209 97.1192 2
215 | 37.0606 96.989 2
216 | 34.9122 96.9147 2
217 | 32.7637 96.7133 2
218 | 30.6153 96.4892 2
219 | 28.4668 96.2119 2
220 | 26.3184 95.9347 2
221 | 24.17 95.6771 2
222 | 22.0215 95.4623 2
223 | 19.8731 95.2417 2
224 | 17.7246 95.1031 2
225 | 17.4561 95.0684 2
226 | 15.5762 94.8259 2
227 | 13.4278 94.6179 2
228 | 11.2793 94.3881 2
229 | 9.13089 94.1732 2
230 | 6.98246 93.9201 2
231 | 4.83402 93.7257 2
232 | 2.68558 93.5963 2
233 | 0.537142 93.5168 2
234 | -1.6113 93.4955 2
235 | -3.75973 93.5722 2
236 | -5.90817 93.6979 2
237 | -8.05661 93.9558 2
238 | -10.205 94.2165 2
239 | -12.3535 94.6029 2
240 | -14.5019 94.961 2
241 | -15.1465 95.0684 2
242 | -16.6504 95.3277 2
243 | -18.7988 95.6771 2
244 | -20.9472 96.004 2
245 | -23.0957 96.3506 2
246 | -25.2441 96.7133 2
247 | -27.3926 97.1129 2
248 | -28.1982 97.2169 2
249 | -29.541 97.3847 2
250 | -31.6894 97.7204 2
251 | -33.8379 98.0561 2
252 | -35.9863 98.3918 2
253 | -38.1347 98.7069 2
254 | -40.2832 99.0632 2
255 | -41.8945 99.3653 2
256 | -42.4316 99.466 2
257 | -44.5801 99.7346 2
258 | -46.7285 99.8688 2
259 | -48.8769 99.8688 2
260 | -51.0254 99.6772 2
261 | -53.1738 99.4 2
262 | -53.3887 99.3653 2
263 | -55.3223 99.0534 2
264 | -57.4707 98.6376 2
265 | -59.6191 98.2911 2
266 | -61.7676 97.989 2
267 | -63.916 97.7204 2
268 | -66.0644 97.4518 2
269 | -67.5684 97.2169 2
270 | -68.2129 97.1162 2
271 | -70.3613 96.7805 2
272 | -72.5098 96.3776 2
273 | -74.6582 96.004 2
274 | -76.8066 95.6391 2
275 | -78.9551 95.3034 2
276 | -80.2083 95.0684 2
277 | -81.1035 94.8952 2
278 | -83.252 94.5486 2
279 | -85.4004 94.0949 2
280 | -87.5488 93.6477 2
281 | -89.6973 93.1626 2
282 | -90.6372 92.92 2
283 | -91.8457 92.6081 2
284 | -93.9941 92.0537 2
285 | -96.1426 91.4299 2
286 | -98.291 90.8062 2
287 | -98.3887 90.7715 2
288 | -100.439 90.0439 2
289 | -102.588 89.2318 2
290 | -103.993 88.6231 2
291 | -104.736 88.3008 2
292 | -106.885 87.2526 2
293 | -108.295 86.4747 2
294 | -109.033 86.037 2
295 | -111.182 84.5328 2
296 | -111.45 84.3262 2
297 | -113.33 82.8223 2
298 | -114.031 82.1778 2
299 | -115.479 80.7903 2
300 | -116.239 80.0294 2
301 | -117.627 78.5157 2
302 | -118.164 77.8809 2
303 | -119.775 75.8859 2
304 | -119.89 75.7325 2
305 | -121.348 73.584 2
306 | -121.924 72.6362 2
307 | -122.628 71.4356 2
308 | -123.739 69.2872 2
309 | -124.072 68.6426 2
310 | -124.8 67.1387 2
311 | -125.755 64.9903 2
312 | -126.221 63.8266 2
313 | -126.602 62.8419 2
314 | -127.434 60.6934 2
315 | -128.19 58.545 2
316 | -128.369 58.0079 2
317 | -128.873 56.3965 2
318 | -129.513 54.2481 2
319 | -130.081 52.0997 2
320 | -130.518 50.548 2
321 | -130.691 49.9512 2
322 | -131.245 47.8028 2
323 | -131.73 45.6543 2
324 | -132.285 43.5059 2
325 | -132.666 41.8178 2
326 | -132.77 41.3575 2
327 | -133.255 39.209 2
328 | -133.707 37.0606 2
329 | -134.156 34.9122 2
330 | -134.572 32.7637 2
331 | -134.814 31.5105 2
332 | -134.988 30.6153 2
333 | -135.404 28.4668 2
334 | -135.75 26.3184 2
335 | -136.139 24.17 2
336 | -136.481 22.0215 2
337 | -136.771 19.8731 2
338 | -136.963 18.7989 2
339 | -137.148 17.7246 2
340 | -137.519 15.5762 2
341 | -137.922 13.4278 2
342 | -138.382 11.2793 2
343 | -138.843 9.13089 2
344 | -139.111 7.87764 2
345 | -139.29 6.98246 2
346 | -139.648 4.83402 2
347 | -140.078 2.68558 2
348 | -140.436 0.537142 2
349 | -140.778 -1.6113 2
350 | -141 -3.75973 2
351 | -141.149 -5.90817 2
352 | -141.22 -8.05661 2
353 | -141.136 -10.205 2
354 | -140.971 -12.3535 2
355 | -140.873 -14.5019 2
356 | -140.959 -16.6504 2
357 | -141.215 -18.7988 2
358 | -141.26 -19.1569 2
359 | -141.466 -20.9472 2
360 | -141.618 -23.0957 2
361 | -141.618 -25.2441 2
362 | -141.379 -27.3926 2
363 | -141.26 -28.1982 2
364 | -141.036 -29.541 2
365 | -140.767 -31.6894 2
366 | -140.701 -33.8379 2
367 | -140.787 -35.9863 2
368 | -140.888 -38.1347 2
369 | -140.902 -40.2832 2
370 | -140.743 -42.4316 2
371 | -140.454 -44.5801 2
372 | -140.07 -46.7285 2
373 | -139.593 -48.8769 2
374 | -139.111 -50.8719 2
375 | -139.068 -51.0254 2
376 | -138.355 -53.1738 2
377 | -137.615 -55.3223 2
378 | -136.963 -56.9824 2
379 | -136.739 -57.4707 2
380 | -135.754 -59.6191 2
381 | -134.814 -61.6699 2
382 | -134.763 -61.7676 2
383 | -133.695 -63.916 2
384 | -132.709 -66.0644 2
385 | -132.666 -66.1621 2
386 | -131.726 -68.2129 2
387 | -130.724 -70.3613 2
388 | -130.518 -70.7745 2
389 | -129.65 -72.5098 2
390 | -128.409 -74.6582 2
391 | -128.369 -74.7253 2
392 | -127.037 -76.8066 2
393 | -126.221 -77.9405 2
394 | -125.49 -78.9551 2
395 | -124.072 -80.8208 2
396 | -123.828 -81.1035 2
397 | -121.971 -83.252 2
398 | -121.924 -83.3031 2
399 | -119.827 -85.4004 2
400 | -119.775 -85.4515 2
401 | -117.627 -87.2661 2
402 | -117.269 -87.5488 2
403 | -115.479 -88.9623 2
404 | -114.548 -89.6973 2
405 | -113.33 -90.6584 2
406 | -111.826 -91.8457 2
407 | -111.182 -92.3545 2
408 | -109.235 -93.9941 2
409 | -109.033 -94.1553 2
410 | -106.885 -95.953 2
411 | -106.655 -96.1426 2
412 | -104.736 -97.556 2
413 | -103.805 -98.291 2
414 | -102.588 -99.1606 2
415 | -100.798 -100.439 2
416 | -100.439 -100.673 2
417 | -98.291 -102.051 2
418 | -97.5033 -102.588 2
419 | -96.1426 -103.373 2
420 | -93.9941 -104.513 2
421 | -93.5059 -104.736 2
422 | -91.8457 -105.413 2
423 | -89.6973 -106.182 2
424 | -87.5488 -106.84 2
425 | -87.3698 -106.885 2
426 | -85.4004 -107.377 2
427 | -83.252 -108.052 2
428 | -81.1035 -108.88 2
429 | -80.7812 -109.033 2
430 | -78.9551 -109.794 2
431 | -76.8066 -110.668 2
432 | -75.4937 -111.182 2
433 | -74.6582 -111.482 2
434 | -72.5098 -112.084 2
435 | -70.3613 -112.63 2
436 | -68.2129 -113.184 2
437 | -67.5684 -113.33 2
438 | -66.0644 -113.631 2
439 | -63.916 -114.181 2
440 | -61.7676 -114.628 2
441 | -59.6191 -115.152 2
442 | -57.7392 -115.479 2
443 | -57.4707 -115.52 2
444 | -55.3223 -115.933 2
445 | -53.1738 -116.209 2
446 | -51.0254 -116.508 2
447 | -48.8769 -116.777 2
448 | -46.7285 -117.045 2
449 | -44.5801 -117.3 2
450 | -42.4316 -117.58 2
451 | -41.8945 -117.627 2
452 | -40.2832 -117.746 2
453 | -38.1347 -117.985 2
454 | -35.9863 -118.202 2
455 | -33.8379 -118.356 2
456 | -31.6894 -118.509 2
457 | -29.541 -118.586 2
458 | -27.3926 -118.586 2
459 | -25.2441 -118.586 2
460 | -23.0957 -118.509 2
461 | -20.9472 -118.509 2
462 | -18.7988 -118.586 2
463 | -16.6504 -118.701 2
464 | -14.5019 -118.84 2
465 | -12.3535 -118.978 2
466 | -10.205 -119.138 2
467 | -8.05661 -119.222 2
468 | -5.90817 -119.352 2
469 | -3.75973 -119.417 2
470 | -1.6113 -119.54 2
471 | 0.537142 -119.675 2
472 | 2.14847 -119.775 2
473 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_51.txt:
--------------------------------------------------------------------------------
1 | 2.68558 -119.81 7
2 | 4.83402 -119.879 7
3 | 6.98246 -120.018 7
4 | 9.13089 -120.157 7
5 | 11.2793 -120.295 7
6 | 13.4278 -120.503 7
7 | 15.5762 -120.682 7
8 | 17.7246 -120.816 7
9 | 19.8731 -120.95 7
10 | 22.0215 -121.045 7
11 | 24.17 -121.045 7
12 | 26.3184 -121.017 7
13 | 28.4668 -120.915 7
14 | 30.6153 -120.749 7
15 | 32.7637 -120.547 7
16 | 34.9122 -120.279 7
17 | 37.0606 -119.949 7
18 | 38.1348 -119.775 7
19 | 39.209 -119.608 7
20 | 41.3575 -119.256 7
21 | 43.5059 -118.84 7
22 | 45.6543 -118.399 7
23 | 47.8028 -117.939 7
24 | 49.1839 -117.627 7
25 | 49.9512 -117.454 7
26 | 52.0997 -116.969 7
27 | 54.2481 -116.452 7
28 | 56.3965 -115.915 7
29 | 58.1421 -115.479 7
30 | 58.545 -115.371 7
31 | 60.6934 -114.774 7
32 | 62.8419 -114.196 7
33 | 64.9903 -113.632 7
34 | 66.0645 -113.33 7
35 | 67.1387 -113.018 7
36 | 69.2872 -112.394 7
37 | 71.4356 -111.771 7
38 | 73.4647 -111.182 7
39 | 73.584 -111.147 7
40 | 75.7325 -110.454 7
41 | 77.8809 -109.83 7
42 | 80.0294 -109.069 7
43 | 80.1368 -109.033 7
44 | 82.1778 -108.353 7
45 | 84.3262 -107.543 7
46 | 86.0271 -106.885 7
47 | 86.4747 -106.706 7
48 | 88.6231 -105.811 7
49 | 90.7715 -104.844 7
50 | 91.0017 -104.736 7
51 | 92.92 -103.841 7
52 | 95.0684 -102.699 7
53 | 95.2698 -102.588 7
54 | 97.2169 -101.514 7
55 | 99.0494 -100.439 7
56 | 99.3653 -100.248 7
57 | 101.514 -98.9207 7
58 | 102.475 -98.291 7
59 | 103.662 -97.4854 7
60 | 105.542 -96.1426 7
61 | 105.811 -95.9437 7
62 | 107.959 -94.3522 7
63 | 108.399 -93.9941 7
64 | 110.107 -92.5481 7
65 | 110.901 -91.8457 7
66 | 112.256 -90.5996 7
67 | 113.237 -89.6973 7
68 | 114.404 -88.5783 7
69 | 115.434 -87.5488 7
70 | 116.553 -86.3812 7
71 | 117.455 -85.4004 7
72 | 118.701 -84.0459 7
73 | 119.432 -83.252 7
74 | 120.85 -81.5639 7
75 | 121.222 -81.1035 7
76 | 122.957 -78.9551 7
77 | 122.998 -78.9014 7
78 | 124.494 -76.8066 7
79 | 125.147 -75.8455 7
80 | 125.952 -74.6582 7
81 | 127.295 -72.5694 7
82 | 127.332 -72.5098 7
83 | 128.591 -70.3613 7
84 | 129.443 -68.8171 7
85 | 129.777 -68.2129 7
86 | 130.84 -66.0644 7
87 | 131.592 -64.5605 7
88 | 131.914 -63.916 7
89 | 132.845 -61.7676 7
90 | 133.705 -59.6191 7
91 | 133.74 -59.5296 7
92 | 134.537 -57.4707 7
93 | 135.3 -55.3223 7
94 | 135.889 -53.4961 7
95 | 135.993 -53.1738 7
96 | 136.616 -51.0254 7
97 | 137.198 -48.8769 7
98 | 137.725 -46.7285 7
99 | 138.037 -45.3474 7
100 | 138.205 -44.5801 7
101 | 138.675 -42.4316 7
102 | 139.078 -40.2832 7
103 | 139.414 -38.1347 7
104 | 139.682 -35.9863 7
105 | 139.884 -33.8379 7
106 | 140.018 -31.6894 7
107 | 140.151 -29.541 7
108 | 140.186 -28.4668 7
109 | 140.22 -27.3926 7
110 | 140.221 -25.2441 7
111 | 140.221 -23.0957 7
112 | 140.221 -20.9472 7
113 | 140.221 -18.7988 7
114 | 140.186 -17.7246 7
115 | 140.15 -16.6504 7
116 | 140.149 -14.5019 7
117 | 140.078 -12.3535 7
118 | 140.078 -10.205 7
119 | 140.078 -8.05661 7
120 | 140.078 -5.90817 7
121 | 140.082 -3.75973 7
122 | 140.082 -1.6113 7
123 | 140.018 0.537142 7
124 | 139.958 2.68558 7
125 | 139.893 4.83402 7
126 | 139.762 6.98246 7
127 | 139.632 9.13089 7
128 | 139.481 11.2793 7
129 | 139.279 13.4278 7
130 | 139.078 15.5762 7
131 | 138.876 17.7246 7
132 | 138.626 19.8731 7
133 | 138.406 22.0215 7
134 | 138.205 24.17 7
135 | 138.037 25.5127 7
136 | 137.933 26.3184 7
137 | 137.656 28.4668 7
138 | 137.332 30.6153 7
139 | 136.997 32.7637 7
140 | 136.594 34.9122 7
141 | 136.191 37.0606 7
142 | 135.889 38.4417 7
143 | 135.715 39.209 7
144 | 135.251 41.3575 7
145 | 134.745 43.5059 7
146 | 134.244 45.6543 7
147 | 133.74 47.4447 7
148 | 133.636 47.8028 7
149 | 133.082 49.9512 7
150 | 132.458 52.0997 7
151 | 131.765 54.2481 7
152 | 131.592 54.7852 7
153 | 131.072 56.3965 7
154 | 130.31 58.545 7
155 | 129.479 60.6934 7
156 | 129.443 60.7829 7
157 | 128.62 62.8419 7
158 | 127.617 64.9903 7
159 | 127.295 65.6348 7
160 | 126.517 67.1387 7
161 | 125.338 69.2872 7
162 | 125.147 69.6031 7
163 | 124.034 71.4356 7
164 | 122.998 72.9621 7
165 | 122.56 73.584 7
166 | 120.891 75.7325 7
167 | 120.85 75.7813 7
168 | 119.002 77.8809 7
169 | 118.701 78.1942 7
170 | 116.786 80.0294 7
171 | 116.553 80.2359 7
172 | 114.404 81.9712 7
173 | 114.122 82.1778 7
174 | 112.256 83.4438 7
175 | 110.803 84.3262 7
176 | 110.107 84.7337 7
177 | 107.959 85.919 7
178 | 106.808 86.4747 7
179 | 105.811 86.9402 7
180 | 103.662 87.8712 7
181 | 101.782 88.6231 7
182 | 101.514 88.7271 7
183 | 99.3653 89.4201 7
184 | 97.2169 90.1132 7
185 | 95.0684 90.6676 7
186 | 94.6656 90.7715 7
187 | 92.92 91.222 7
188 | 90.7715 91.7451 7
189 | 88.6231 92.1479 7
190 | 86.4747 92.5388 7
191 | 84.3262 92.8853 7
192 | 84.1114 92.92 7
193 | 82.1778 93.2319 7
194 | 80.0294 93.5578 7
195 | 77.8809 93.8556 7
196 | 75.7325 94.2021 7
197 | 73.584 94.4793 7
198 | 71.4356 94.7566 7
199 | 69.2872 94.9645 7
200 | 68.4815 95.0684 7
201 | 67.1387 95.2417 7
202 | 64.9903 95.5189 7
203 | 62.8419 95.7961 7
204 | 60.6934 96.0733 7
205 | 58.545 96.338 7
206 | 56.3965 96.579 7
207 | 54.2481 96.7286 7
208 | 52.0997 96.9147 7
209 | 49.9512 96.989 7
210 | 47.8028 97.1162 7
211 | 45.6543 97.1162 7
212 | 43.5059 97.1162 7
213 | 41.3575 97.0541 7
214 | 39.209 96.989 7
215 | 37.0606 96.8588 7
216 | 34.9122 96.7805 7
217 | 32.7637 96.6462 7
218 | 30.6153 96.5119 7
219 | 28.4668 96.3105 7
220 | 26.3184 96.1068 7
221 | 24.17 95.8654 7
222 | 22.0215 95.6055 7
223 | 19.8731 95.3191 7
224 | 17.7246 95.1031 7
225 | 17.4561 95.0684 7
226 | 15.5762 94.8334 7
227 | 13.4278 94.6179 7
228 | 11.2793 94.3635 7
229 | 9.13089 94.1328 7
230 | 6.98246 93.8868 7
231 | 4.83402 93.6719 7
232 | 2.68558 93.5287 7
233 | 0.537142 93.4571 7
234 | -1.6113 93.4571 7
235 | -3.75973 93.5287 7
236 | -5.90817 93.717 7
237 | -8.05661 93.9942 7
238 | -10.205 94.2714 7
239 | -12.3535 94.6179 7
240 | -14.5019 95.0338 7
241 | -14.7168 95.0684 7
242 | -16.6504 95.3705 7
243 | -18.7988 95.7734 7
244 | -20.9472 96.1762 7
245 | -23.0957 96.5119 7
246 | -25.2441 96.9147 7
247 | -27.1777 97.2169 7
248 | -27.3926 97.2504 7
249 | -29.541 97.6533 7
250 | -31.6894 98.0561 7
251 | -33.8379 98.4589 7
252 | -35.9863 98.9148 7
253 | -38.1347 99.3306 7
254 | -38.3496 99.3653 7
255 | -40.2832 99.6772 7
256 | -42.4316 99.8851 7
257 | -44.5801 100.024 7
258 | -46.7285 100.093 7
259 | -48.8769 100.093 7
260 | -51.0254 100.093 7
261 | -53.1738 100.003 7
262 | -55.3223 99.8017 7
263 | -57.4707 99.5331 7
264 | -58.3659 99.3653 7
265 | -59.6191 99.1227 7
266 | -61.7676 98.6603 7
267 | -63.916 98.2575 7
268 | -66.0644 97.8753 7
269 | -68.2129 97.519 7
270 | -70.1465 97.2169 7
271 | -70.3613 97.1822 7
272 | -72.5098 96.905 7
273 | -74.6582 96.5585 7
274 | -76.8066 96.2119 7
275 | -78.9551 95.7961 7
276 | -81.1035 95.4496 7
277 | -83.0729 95.0684 7
278 | -83.252 95.0338 7
279 | -85.4004 94.6179 7
280 | -87.5488 94.2021 7
281 | -89.6973 93.7592 7
282 | -91.8457 93.2319 7
283 | -93.2268 92.92 7
284 | -93.9941 92.7409 7
285 | -96.1426 92.123 7
286 | -98.291 91.4992 7
287 | -100.439 90.8755 7
288 | -100.732 90.7715 7
289 | -102.588 90.0912 7
290 | -104.736 89.2318 7
291 | -106.141 88.6231 7
292 | -106.885 88.2897 7
293 | -109.033 87.1785 7
294 | -110.234 86.4747 7
295 | -111.182 85.8779 7
296 | -113.276 84.3262 7
297 | -113.33 84.2849 7
298 | -115.479 82.4786 7
299 | -115.805 82.1778 7
300 | -117.627 80.3563 7
301 | -117.94 80.0294 7
302 | -119.775 77.9321 7
303 | -119.817 77.8809 7
304 | -121.407 75.7325 7
305 | -121.924 74.9975 7
306 | -122.85 73.584 7
307 | -124.035 71.4356 7
308 | -124.072 71.364 7
309 | -125.146 69.2872 7
310 | -126.11 67.1387 7
311 | -126.221 66.8702 7
312 | -126.973 64.9903 7
313 | -127.76 62.8419 7
314 | -128.369 61.0157 7
315 | -128.477 60.6934 7
316 | -129.166 58.545 7
317 | -129.79 56.3965 7
318 | -130.414 54.2481 7
319 | -130.518 53.89 7
320 | -131.037 52.0997 7
321 | -131.558 49.9512 7
322 | -132.077 47.8028 7
323 | -132.562 45.6543 7
324 | -132.666 45.194 7
325 | -133.047 43.5059 7
326 | -133.505 41.3575 7
327 | -133.975 39.209 7
328 | -134.378 37.0606 7
329 | -134.781 34.9122 7
330 | -134.814 34.7331 7
331 | -135.196 32.7637 7
332 | -135.587 30.6153 7
333 | -135.958 28.4668 7
334 | -136.305 26.3184 7
335 | -136.641 24.17 7
336 | -136.926 22.0215 7
337 | -136.963 21.753 7
338 | -137.222 19.8731 7
339 | -137.519 17.7246 7
340 | -137.889 15.5762 7
341 | -138.306 13.4278 7
342 | -138.689 11.2793 7
343 | -139.111 9.30993 7
344 | -139.147 9.13089 7
345 | -139.562 6.98246 7
346 | -139.935 4.83402 7
347 | -140.293 2.68558 7
348 | -140.63 0.537142 7
349 | -140.926 -1.6113 7
350 | -141.149 -3.75973 7
351 | -141.223 -5.90817 7
352 | -141.22 -8.05661 7
353 | -141.136 -10.205 7
354 | -140.959 -12.3535 7
355 | -140.873 -14.5019 7
356 | -140.946 -16.6504 7
357 | -141.126 -18.7988 7
358 | -141.26 -19.873 7
359 | -141.379 -20.9472 7
360 | -141.459 -23.0957 7
361 | -141.3 -25.2441 7
362 | -141.26 -25.5127 7
363 | -140.946 -27.3926 7
364 | -140.653 -29.541 7
365 | -140.409 -31.6894 7
366 | -140.409 -33.8379 7
367 | -140.529 -35.9863 7
368 | -140.557 -38.1347 7
369 | -140.557 -40.2832 7
370 | -140.345 -42.4316 7
371 | -140.026 -44.5801 7
372 | -139.61 -46.7285 7
373 | -139.111 -48.7235 7
374 | -139.067 -48.8769 7
375 | -138.381 -51.0254 7
376 | -137.748 -53.1738 7
377 | -136.963 -55.2148 7
378 | -136.914 -55.3223 7
379 | -135.938 -57.4707 7
380 | -134.955 -59.6191 7
381 | -134.814 -59.8877 7
382 | -133.687 -61.7676 7
383 | -132.715 -63.916 7
384 | -132.666 -64.0234 7
385 | -131.694 -66.0644 7
386 | -130.751 -68.2129 7
387 | -130.518 -68.75 7
388 | -129.846 -70.3613 7
389 | -128.842 -72.5098 7
390 | -128.369 -73.3538 7
391 | -127.639 -74.6582 7
392 | -126.264 -76.8066 7
393 | -126.221 -76.8663 7
394 | -124.654 -78.9551 7
395 | -124.072 -79.6901 7
396 | -122.793 -81.1035 7
397 | -121.924 -82.0647 7
398 | -120.737 -83.252 7
399 | -119.775 -84.2131 7
400 | -118.448 -85.4004 7
401 | -117.627 -86.1354 7
402 | -115.837 -87.5488 7
403 | -115.479 -87.8315 7
404 | -113.33 -89.3813 7
405 | -112.882 -89.6973 7
406 | -111.182 -90.9729 7
407 | -110.107 -91.8457 7
408 | -109.033 -92.6672 7
409 | -107.529 -93.9941 7
410 | -106.885 -94.5313 7
411 | -104.951 -96.1426 7
412 | -104.736 -96.3122 7
413 | -102.588 -97.821 7
414 | -102.009 -98.291 7
415 | -100.439 -99.3652 7
416 | -98.8694 -100.439 7
417 | -98.291 -100.798 7
418 | -96.1426 -102.212 7
419 | -95.5642 -102.588 7
420 | -93.9941 -103.438 7
421 | -91.8457 -104.409 7
422 | -90.9058 -104.736 7
423 | -89.6973 -105.108 7
424 | -87.5488 -105.639 7
425 | -85.4004 -106.091 7
426 | -83.252 -106.724 7
427 | -82.8491 -106.885 7
428 | -81.1035 -107.52 7
429 | -78.9551 -108.55 7
430 | -77.9883 -109.033 7
431 | -76.8066 -109.57 7
432 | -74.6582 -110.449 7
433 | -72.5098 -111.128 7
434 | -72.3307 -111.182 7
435 | -70.3613 -111.719 7
436 | -68.2129 -112.256 7
437 | -66.0644 -112.847 7
438 | -64.1308 -113.33 7
439 | -63.916 -113.377 7
440 | -61.7676 -113.937 7
441 | -59.6191 -114.453 7
442 | -57.4707 -114.844 7
443 | -55.3223 -115.325 7
444 | -54.5166 -115.479 7
445 | -53.1738 -115.693 7
446 | -51.0254 -115.971 7
447 | -48.8769 -116.329 7
448 | -46.7285 -116.646 7
449 | -44.5801 -116.926 7
450 | -42.4316 -117.09 7
451 | -40.2832 -117.371 7
452 | -38.1347 -117.576 7
453 | -37.5976 -117.627 7
454 | -35.9863 -117.756 7
455 | -33.8379 -118.065 7
456 | -31.6894 -118.303 7
457 | -29.541 -118.433 7
458 | -27.3926 -118.509 7
459 | -25.2441 -118.509 7
460 | -23.0957 -118.462 7
461 | -20.9472 -118.509 7
462 | -18.7988 -118.586 7
463 | -16.6504 -118.701 7
464 | -14.5019 -118.88 7
465 | -12.3535 -119.003 7
466 | -10.205 -119.138 7
467 | -8.05661 -119.272 7
468 | -5.90817 -119.406 7
469 | -3.75973 -119.54 7
470 | -1.6113 -119.608 7
471 | 0.537142 -119.675 7
472 | 2.14847 -119.775 7
473 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_53.txt:
--------------------------------------------------------------------------------
1 | 6.98246 -119.879 12
2 | 9.13089 -119.949 12
3 | 11.2793 -120.018 12
4 | 13.4278 -120.087 12
5 | 15.5762 -120.169 12
6 | 17.7246 -120.241 12
7 | 19.8731 -120.313 12
8 | 22.0215 -120.364 12
9 | 24.17 -120.364 12
10 | 26.3184 -120.295 12
11 | 28.4668 -120.226 12
12 | 30.6153 -120.087 12
13 | 32.7637 -119.879 12
14 | 33.5694 -119.775 12
15 | 34.9122 -119.602 12
16 | 37.0606 -119.325 12
17 | 39.209 -118.909 12
18 | 41.3575 -118.533 12
19 | 43.5059 -118.131 12
20 | 45.6543 -117.662 12
21 | 45.8078 -117.627 12
22 | 47.8028 -117.176 12
23 | 49.9512 -116.732 12
24 | 52.0997 -116.276 12
25 | 54.2481 -115.79 12
26 | 55.6292 -115.479 12
27 | 56.3965 -115.299 12
28 | 58.545 -114.751 12
29 | 60.6934 -114.266 12
30 | 62.8419 -113.711 12
31 | 64.3189 -113.33 12
32 | 64.9903 -113.151 12
33 | 67.1387 -112.602 12
34 | 69.2872 -111.979 12
35 | 71.4356 -111.424 12
36 | 72.2711 -111.182 12
37 | 73.584 -110.8 12
38 | 75.7325 -110.177 12
39 | 77.8809 -109.537 12
40 | 79.3458 -109.033 12
41 | 80.0294 -108.791 12
42 | 82.1778 -108.06 12
43 | 84.3262 -107.254 12
44 | 85.2352 -106.885 12
45 | 86.4747 -106.348 12
46 | 88.6231 -105.395 12
47 | 89.9838 -104.736 12
48 | 90.7715 -104.329 12
49 | 92.92 -103.218 12
50 | 94.1374 -102.588 12
51 | 95.0684 -102.089 12
52 | 97.2169 -100.847 12
53 | 97.9119 -100.439 12
54 | 99.3653 -99.5571 12
55 | 101.451 -98.291 12
56 | 101.514 -98.2512 12
57 | 103.662 -96.7948 12
58 | 104.623 -96.1426 12
59 | 105.811 -95.2749 12
60 | 107.476 -93.9941 12
61 | 107.959 -93.6223 12
62 | 110.107 -91.887 12
63 | 110.154 -91.8457 12
64 | 112.256 -89.9121 12
65 | 112.489 -89.6973 12
66 | 114.404 -87.8621 12
67 | 114.705 -87.5488 12
68 | 116.553 -85.6242 12
69 | 116.768 -85.4004 12
70 | 118.701 -83.2987 12
71 | 118.743 -83.252 12
72 | 120.56 -81.1035 12
73 | 120.85 -80.7454 12
74 | 122.296 -78.9551 12
75 | 122.998 -78.042 12
76 | 123.913 -76.8066 12
77 | 125.147 -75.054 12
78 | 125.425 -74.6582 12
79 | 126.873 -72.5098 12
80 | 127.295 -71.8147 12
81 | 128.147 -70.3613 12
82 | 129.332 -68.2129 12
83 | 129.443 -68.0115 12
84 | 130.482 -66.0644 12
85 | 131.484 -63.916 12
86 | 131.592 -63.6858 12
87 | 132.458 -61.7676 12
88 | 133.359 -59.6191 12
89 | 133.74 -58.6344 12
90 | 134.177 -57.4707 12
91 | 134.915 -55.3223 12
92 | 135.646 -53.1738 12
93 | 135.889 -52.4219 12
94 | 136.325 -51.0254 12
95 | 136.929 -48.8769 12
96 | 137.467 -46.7285 12
97 | 138.003 -44.5801 12
98 | 138.037 -44.4266 12
99 | 138.474 -42.4316 12
100 | 138.809 -40.2832 12
101 | 139.177 -38.1347 12
102 | 139.481 -35.9863 12
103 | 139.749 -33.8379 12
104 | 139.943 -31.6894 12
105 | 140.082 -29.541 12
106 | 140.151 -27.3926 12
107 | 140.151 -25.2441 12
108 | 140.186 -24.1699 12
109 | 140.22 -23.0957 12
110 | 140.221 -20.9472 12
111 | 140.186 -19.873 12
112 | 140.15 -18.7988 12
113 | 140.15 -16.6504 12
114 | 140.149 -14.5019 12
115 | 140.078 -12.3535 12
116 | 140.078 -10.205 12
117 | 140.078 -8.05661 12
118 | 140.15 -5.90817 12
119 | 140.151 -3.75973 12
120 | 140.186 -2.68552 12
121 | 140.22 -1.6113 12
122 | 140.22 0.537142 12
123 | 140.22 2.68558 12
124 | 140.219 4.83402 12
125 | 140.186 5.90824 12
126 | 140.152 6.98246 12
127 | 140.085 9.13089 12
128 | 139.951 11.2793 12
129 | 139.816 13.4278 12
130 | 139.682 15.5762 12
131 | 139.481 17.7246 12
132 | 139.279 19.8731 12
133 | 139.078 22.0215 12
134 | 138.809 24.17 12
135 | 138.608 26.3184 12
136 | 138.349 28.4668 12
137 | 138.072 30.6153 12
138 | 138.037 30.8838 12
139 | 137.795 32.7637 12
140 | 137.517 34.9122 12
141 | 137.171 37.0606 12
142 | 136.755 39.209 12
143 | 136.339 41.3575 12
144 | 135.923 43.5059 12
145 | 135.889 43.6594 12
146 | 135.438 45.6543 12
147 | 134.884 47.8028 12
148 | 134.329 49.9512 12
149 | 133.74 51.9803 12
150 | 133.705 52.0997 12
151 | 133.06 54.2481 12
152 | 132.344 56.3965 12
153 | 131.592 58.4473 12
154 | 131.556 58.545 12
155 | 130.768 60.6934 12
156 | 129.837 62.8419 12
157 | 129.443 63.7508 12
158 | 128.888 64.9903 12
159 | 127.851 67.1387 12
160 | 127.295 68.1458 12
161 | 126.665 69.2872 12
162 | 125.338 71.4356 12
163 | 125.147 71.734 12
164 | 123.913 73.584 12
165 | 122.998 74.7606 12
166 | 122.213 75.7325 12
167 | 120.85 77.2738 12
168 | 120.268 77.8809 12
169 | 118.701 79.4475 12
170 | 118.066 80.0294 12
171 | 116.553 81.3102 12
172 | 115.479 82.1778 12
173 | 114.404 82.9835 12
174 | 112.316 84.3262 12
175 | 112.256 84.3646 12
176 | 110.107 85.6227 12
177 | 108.46 86.4747 12
178 | 107.959 86.7253 12
179 | 105.811 87.6563 12
180 | 103.662 88.5157 12
181 | 103.369 88.6231 12
182 | 101.514 89.2815 12
183 | 99.3653 89.9745 12
184 | 97.2169 90.5983 12
185 | 96.5455 90.7715 12
186 | 95.0684 91.1408 12
187 | 92.92 91.6379 12
188 | 90.7715 92.0808 12
189 | 88.6231 92.4836 12
190 | 86.4747 92.8853 12
191 | 86.2598 92.92 12
192 | 84.3262 93.2221 12
193 | 82.1778 93.5091 12
194 | 80.0294 93.8556 12
195 | 77.8809 94.1621 12
196 | 75.7325 94.4793 12
197 | 73.584 94.7566 12
198 | 71.6504 95.0684 12
199 | 71.4356 95.102 12
200 | 69.2872 95.3803 12
201 | 67.1387 95.6771 12
202 | 64.9903 95.9636 12
203 | 62.8419 96.3649 12
204 | 60.6934 96.7353 12
205 | 58.545 97.1057 12
206 | 57.7393 97.2169 12
207 | 56.3965 97.4021 12
208 | 54.2481 97.6243 12
209 | 52.0997 97.7725 12
210 | 49.9512 97.8466 12
211 | 47.8028 97.8972 12
212 | 45.6543 97.8972 12
213 | 43.5059 97.8972 12
214 | 41.3575 97.8256 12
215 | 39.209 97.7725 12
216 | 37.0606 97.6984 12
217 | 34.9122 97.6243 12
218 | 32.7637 97.4762 12
219 | 30.6153 97.2552 12
220 | 30.3467 97.2169 12
221 | 28.4668 96.9483 12
222 | 26.3184 96.7181 12
223 | 24.17 96.4112 12
224 | 22.0215 96.1426 12
225 | 19.8731 95.9039 12
226 | 17.7246 95.6652 12
227 | 15.5762 95.4904 12
228 | 13.4278 95.3277 12
229 | 11.2793 95.1068 12
230 | 10.7422 95.0684 12
231 | 9.13089 94.9533 12
232 | 6.98246 94.7231 12
233 | 4.83402 94.5512 12
234 | 2.68558 94.3921 12
235 | 0.537142 94.2329 12
236 | -1.6113 94.186 12
237 | -3.75973 94.2165 12
238 | -5.90817 94.3646 12
239 | -8.05661 94.5313 12
240 | -10.205 94.8832 12
241 | -11.2793 95.0684 12
242 | -12.3535 95.2536 12
243 | -14.5019 95.6981 12
244 | -16.6504 96.2167 12
245 | -18.7988 96.7181 12
246 | -20.9472 97.1798 12
247 | -21.1263 97.2169 12
248 | -23.0957 97.6243 12
249 | -25.2441 97.9947 12
250 | -27.3926 98.3269 12
251 | -29.541 98.7069 12
252 | -31.6894 99.1146 12
253 | -33.1933 99.3653 12
254 | -33.8379 99.4693 12
255 | -35.9863 99.8017 12
256 | -38.1347 100.024 12
257 | -40.2832 100.205 12
258 | -42.4316 100.272 12
259 | -44.5801 100.339 12
260 | -46.7285 100.374 12
261 | -48.8769 100.406 12
262 | -51.0254 100.44 12
263 | -53.1738 100.44 12
264 | -55.3223 100.406 12
265 | -57.4707 100.309 12
266 | -59.6191 100.137 12
267 | -61.7676 99.8158 12
268 | -63.916 99.4 12
269 | -64.0695 99.3653 12
270 | -66.0644 98.8998 12
271 | -68.2129 98.3985 12
272 | -70.3613 97.9446 12
273 | -72.5098 97.4675 12
274 | -74.0137 97.2169 12
275 | -74.6582 97.1094 12
276 | -76.8066 96.6971 12
277 | -78.9551 96.3506 12
278 | -81.1035 95.9347 12
279 | -83.252 95.5189 12
280 | -85.4004 95.1031 12
281 | -85.5794 95.0684 12
282 | -87.5488 94.6873 12
283 | -89.6973 94.2292 12
284 | -91.8457 93.7592 12
285 | -93.9941 93.2319 12
286 | -95.2026 92.92 12
287 | -96.1426 92.6774 12
288 | -98.291 92.123 12
289 | -100.439 91.4765 12
290 | -102.588 90.8062 12
291 | -102.686 90.7715 12
292 | -104.736 90.0196 12
293 | -106.885 89.1429 12
294 | -108.036 88.6231 12
295 | -109.033 88.1416 12
296 | -111.182 87.0303 12
297 | -112.077 86.4747 12
298 | -113.33 85.669 12
299 | -115.21 84.3262 12
300 | -115.479 84.1197 12
301 | -117.627 82.2226 12
302 | -117.674 82.1778 12
303 | -119.775 80.0761 12
304 | -119.818 80.0294 12
305 | -121.635 77.8809 12
306 | -121.924 77.5049 12
307 | -123.19 75.7325 12
308 | -124.072 74.3599 12
309 | -124.554 73.584 12
310 | -125.665 71.4356 12
311 | -126.221 70.2847 12
312 | -126.686 69.2872 12
313 | -127.546 67.1387 12
314 | -128.333 64.9903 12
315 | -128.369 64.8926 12
316 | -129.097 62.8419 12
317 | -129.766 60.6934 12
318 | -130.344 58.545 12
319 | -130.518 57.9482 12
320 | -130.968 56.3965 12
321 | -131.453 54.2481 12
322 | -131.938 52.0997 12
323 | -132.423 49.9512 12
324 | -132.666 48.877 12
325 | -132.901 47.8028 12
326 | -133.324 45.6543 12
327 | -133.774 43.5059 12
328 | -134.177 41.3575 12
329 | -134.572 39.209 12
330 | -134.814 37.7051 12
331 | -134.918 37.0606 12
332 | -135.318 34.9122 12
333 | -135.681 32.7637 12
334 | -136.027 30.6153 12
335 | -136.374 28.4668 12
336 | -136.712 26.3184 12
337 | -136.963 24.4385 12
338 | -136.998 24.17 12
339 | -137.285 22.0215 12
340 | -137.572 19.8731 12
341 | -137.889 17.7246 12
342 | -138.229 15.5762 12
343 | -138.613 13.4278 12
344 | -138.992 11.2793 12
345 | -139.111 10.6348 12
346 | -139.362 9.13089 12
347 | -139.741 6.98246 12
348 | -140.111 4.83402 12
349 | -140.436 2.68558 12
350 | -140.778 0.537142 12
351 | -141 -1.6113 12
352 | -141.145 -3.75973 12
353 | -141.145 -5.90817 12
354 | -141.061 -8.05661 12
355 | -140.805 -10.205 12
356 | -140.615 -12.3535 12
357 | -140.499 -14.5019 12
358 | -140.653 -16.6504 12
359 | -140.933 -18.7988 12
360 | -141.213 -20.9472 12
361 | -141.26 -22.0215 12
362 | -141.3 -23.0957 12
363 | -141.26 -23.6328 12
364 | -141.126 -25.2441 12
365 | -140.767 -27.3926 12
366 | -140.357 -29.541 12
367 | -140.1 -31.6894 12
368 | -140.1 -33.8379 12
369 | -140.186 -35.9863 12
370 | -140.265 -38.1347 12
371 | -140.224 -40.2832 12
372 | -140.026 -42.4316 12
373 | -139.687 -44.5801 12
374 | -139.226 -46.7285 12
375 | -139.111 -47.1889 12
376 | -138.639 -48.8769 12
377 | -138.078 -51.0254 12
378 | -137.401 -53.1738 12
379 | -136.963 -54.4867 12
380 | -136.621 -55.3223 12
381 | -135.608 -57.4707 12
382 | -134.814 -59.1308 12
383 | -134.532 -59.6191 12
384 | -133.364 -61.7676 12
385 | -132.666 -63.0371 12
386 | -132.129 -63.916 12
387 | -131.108 -66.0644 12
388 | -130.518 -67.3774 12
389 | -130.176 -68.2129 12
390 | -129.271 -70.3613 12
391 | -128.369 -72.2412 12
392 | -128.235 -72.5098 12
393 | -127.037 -74.6582 12
394 | -126.221 -75.8588 12
395 | -125.549 -76.8066 12
396 | -124.072 -78.776 12
397 | -123.911 -78.9551 12
398 | -121.975 -81.1035 12
399 | -121.924 -81.16 12
400 | -119.832 -83.252 12
401 | -119.775 -83.3085 12
402 | -117.627 -85.2214 12
403 | -117.397 -85.4004 12
404 | -115.479 -86.8924 12
405 | -114.57 -87.5488 12
406 | -113.33 -88.444 12
407 | -111.595 -89.6973 12
408 | -111.182 -89.9957 12
409 | -109.033 -91.4876 12
410 | -108.62 -91.8457 12
411 | -106.885 -93.3496 12
412 | -106.141 -93.9941 12
413 | -104.736 -95.1355 12
414 | -103.585 -96.1426 12
415 | -102.588 -96.964 12
416 | -100.977 -98.291 12
417 | -100.439 -98.667 12
418 | -98.291 -100.141 12
419 | -97.9074 -100.439 12
420 | -96.1426 -101.563 12
421 | -94.4073 -102.588 12
422 | -93.9941 -102.803 12
423 | -91.8457 -103.796 12
424 | -89.6973 -104.513 12
425 | -88.93 -104.736 12
426 | -87.5488 -105.094 12
427 | -85.4004 -105.497 12
428 | -83.252 -106.152 12
429 | -81.4616 -106.885 12
430 | -81.1035 -107.025 12
431 | -78.9551 -108.061 12
432 | -76.9141 -109.033 12
433 | -76.8066 -109.08 12
434 | -74.6582 -110.014 12
435 | -72.5098 -110.721 12
436 | -70.8984 -111.182 12
437 | -70.3613 -111.316 12
438 | -68.2129 -111.789 12
439 | -66.0644 -112.305 12
440 | -63.916 -112.87 12
441 | -62.3047 -113.33 12
442 | -61.7676 -113.464 12
443 | -59.6191 -113.912 12
444 | -57.4707 -114.217 12
445 | -55.3223 -114.551 12
446 | -53.1738 -114.888 12
447 | -51.0254 -115.21 12
448 | -49.6826 -115.479 12
449 | -48.8769 -115.607 12
450 | -46.7285 -115.951 12
451 | -44.5801 -116.239 12
452 | -42.4316 -116.459 12
453 | -40.2832 -116.699 12
454 | -38.1347 -116.895 12
455 | -35.9863 -117.188 12
456 | -33.8379 -117.48 12
457 | -32.7637 -117.627 12
458 | -31.6894 -117.751 12
459 | -29.541 -117.916 12
460 | -27.3926 -117.999 12
461 | -25.2441 -118.065 12
462 | -23.0957 -118.081 12
463 | -20.9472 -118.081 12
464 | -18.7988 -118.164 12
465 | -16.6504 -118.303 12
466 | -14.5019 -118.479 12
467 | -12.3535 -118.665 12
468 | -10.205 -118.84 12
469 | -8.05661 -119.003 12
470 | -5.90817 -119.138 12
471 | -3.75973 -119.287 12
472 | -1.6113 -119.417 12
473 | 0.537142 -119.54 12
474 | 2.68558 -119.675 12
475 | 4.83402 -119.742 12
476 | 5.37113 -119.775 12
477 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_59.txt:
--------------------------------------------------------------------------------
1 | -29.541 -115.52 27
2 | -27.3926 -115.521 27
3 | -25.2441 -115.521 27
4 | -23.0957 -115.521 27
5 | -20.9472 -115.521 27
6 | -18.7988 -115.602 27
7 | -16.6504 -115.677 27
8 | -14.5019 -115.824 27
9 | -12.3535 -115.886 27
10 | -10.205 -115.944 27
11 | -8.05661 -115.929 27
12 | -5.90817 -115.929 27
13 | -3.75973 -115.915 27
14 | -1.6113 -115.929 27
15 | 0.537142 -115.998 27
16 | 2.68558 -116.183 27
17 | 4.83402 -116.345 27
18 | 6.98246 -116.586 27
19 | 9.13089 -116.788 27
20 | 11.2793 -117.038 27
21 | 13.4278 -117.176 27
22 | 15.5762 -117.315 27
23 | 17.7246 -117.384 27
24 | 19.8731 -117.454 27
25 | 22.0215 -117.454 27
26 | 24.17 -117.454 27
27 | 26.3184 -117.384 27
28 | 28.4668 -117.315 27
29 | 30.6153 -117.176 27
30 | 32.7637 -117.038 27
31 | 34.9122 -116.83 27
32 | 37.0606 -116.553 27
33 | 39.209 -116.318 27
34 | 41.3575 -115.998 27
35 | 43.5059 -115.714 27
36 | 45.0098 -115.479 27
37 | 45.6543 -115.371 27
38 | 47.8028 -114.959 27
39 | 49.9512 -114.572 27
40 | 52.0997 -114.169 27
41 | 54.2481 -113.766 27
42 | 56.2431 -113.33 27
43 | 56.3965 -113.295 27
44 | 58.545 -112.81 27
45 | 60.6934 -112.325 27
46 | 62.8419 -111.84 27
47 | 64.9903 -111.286 27
48 | 65.4507 -111.182 27
49 | 67.1387 -110.788 27
50 | 69.2872 -110.208 27
51 | 71.4356 -109.622 27
52 | 73.4647 -109.033 27
53 | 73.584 -108.999 27
54 | 75.7325 -108.375 27
55 | 77.8809 -107.682 27
56 | 80.0294 -106.919 27
57 | 80.1189 -106.885 27
58 | 82.1778 -106.061 27
59 | 84.3262 -105.202 27
60 | 85.4005 -104.736 27
61 | 86.4747 -104.271 27
62 | 88.6231 -103.34 27
63 | 90.127 -102.588 27
64 | 90.7715 -102.255 27
65 | 92.92 -101.143 27
66 | 94.1956 -100.439 27
67 | 95.0684 -99.9407 27
68 | 97.2169 -98.6363 27
69 | 97.7856 -98.291 27
70 | 99.3653 -97.3319 27
71 | 101.215 -96.1426 27
72 | 101.514 -95.9437 27
73 | 103.662 -94.4929 27
74 | 104.36 -93.9941 27
75 | 105.811 -92.9199 27
76 | 107.261 -91.8457 27
77 | 107.959 -91.3285 27
78 | 110.056 -89.6973 27
79 | 110.107 -89.6543 27
80 | 112.256 -87.7637 27
81 | 112.489 -87.5488 27
82 | 114.404 -85.7871 27
83 | 114.807 -85.4004 27
84 | 116.553 -83.6548 27
85 | 116.94 -83.252 27
86 | 118.701 -81.337 27
87 | 118.908 -81.1035 27
88 | 120.807 -78.9551 27
89 | 120.85 -78.9039 27
90 | 122.544 -76.8066 27
91 | 122.998 -76.2158 27
92 | 124.152 -74.6582 27
93 | 125.147 -73.3154 27
94 | 125.722 -72.5098 27
95 | 127.18 -70.3613 27
96 | 127.295 -70.1718 27
97 | 128.443 -68.2129 27
98 | 129.443 -66.4001 27
99 | 129.622 -66.0644 27
100 | 130.768 -63.916 27
101 | 131.592 -62.1512 27
102 | 131.771 -61.7676 27
103 | 132.805 -59.6191 27
104 | 133.706 -57.4707 27
105 | 133.74 -57.3881 27
106 | 134.607 -55.3223 27
107 | 135.438 -53.1738 27
108 | 135.889 -51.9043 27
109 | 136.191 -51.0254 27
110 | 136.894 -48.8769 27
111 | 137.517 -46.7285 27
112 | 138.037 -44.9381 27
113 | 138.141 -44.5801 27
114 | 138.675 -42.4316 27
115 | 139.181 -40.2832 27
116 | 139.666 -38.1347 27
117 | 140.151 -35.9863 27
118 | 140.186 -35.8328 27
119 | 140.636 -33.8379 27
120 | 141.092 -31.6894 27
121 | 141.537 -29.541 27
122 | 141.953 -27.3926 27
123 | 142.299 -25.2441 27
124 | 142.334 -25.0293 27
125 | 142.646 -23.0957 27
126 | 142.905 -20.9472 27
127 | 143.131 -18.7988 27
128 | 143.308 -16.6504 27
129 | 143.478 -14.5019 27
130 | 143.616 -12.3535 27
131 | 143.731 -10.205 27
132 | 143.874 -8.05661 27
133 | 144.017 -5.90817 27
134 | 144.16 -3.75973 27
135 | 144.303 -1.6113 27
136 | 144.375 0.537142 27
137 | 144.483 2.14847 27
138 | 144.517 2.68558 27
139 | 144.586 4.83402 27
140 | 144.725 6.98246 27
141 | 144.794 9.13089 27
142 | 144.864 11.2793 27
143 | 144.933 13.4278 27
144 | 144.986 15.5762 27
145 | 145.002 17.7246 27
146 | 144.986 19.8731 27
147 | 144.986 22.0215 27
148 | 144.852 24.17 27
149 | 144.717 26.3184 27
150 | 144.516 28.4668 27
151 | 144.483 28.7354 27
152 | 144.248 30.6153 27
153 | 143.979 32.7637 27
154 | 143.686 34.9122 27
155 | 143.308 37.0606 27
156 | 142.923 39.209 27
157 | 142.502 41.3575 27
158 | 142.334 42.1248 27
159 | 142.022 43.5059 27
160 | 141.537 45.6543 27
161 | 140.983 47.8028 27
162 | 140.359 49.9512 27
163 | 140.186 50.548 27
164 | 139.72 52.0997 27
165 | 139.004 54.2481 27
166 | 138.216 56.3965 27
167 | 138.037 56.8848 27
168 | 137.428 58.545 27
169 | 136.497 60.6934 27
170 | 135.889 62.0982 27
171 | 135.555 62.8419 27
172 | 134.564 64.9903 27
173 | 133.74 66.6374 27
174 | 133.472 67.1387 27
175 | 132.296 69.2872 27
176 | 131.592 70.4878 27
177 | 131.016 71.4356 27
178 | 129.563 73.584 27
179 | 129.443 73.7452 27
180 | 127.915 75.7325 27
181 | 127.295 76.4998 27
182 | 126.135 77.8809 27
183 | 125.147 78.9551 27
184 | 124.072 80.0294 27
185 | 122.998 81.0176 27
186 | 121.68 82.1778 27
187 | 120.85 82.8802 27
188 | 118.871 84.3262 27
189 | 118.701 84.4456 27
190 | 116.553 85.8225 27
191 | 115.411 86.4747 27
192 | 114.404 87.0118 27
193 | 112.256 88.0144 27
194 | 110.851 88.6231 27
195 | 110.107 88.935 27
196 | 107.959 89.6973 27
197 | 105.811 90.3904 27
198 | 104.498 90.7715 27
199 | 103.662 91.0141 27
200 | 101.514 91.5685 27
201 | 99.3653 92.123 27
202 | 97.2169 92.6081 27
203 | 95.6055 92.92 27
204 | 95.0684 93.0207 27
205 | 92.92 93.4235 27
206 | 90.7715 93.7863 27
207 | 88.6231 94.1621 27
208 | 86.4747 94.4793 27
209 | 84.3262 94.7663 27
210 | 82.3926 95.0684 27
211 | 82.1778 95.102 27
212 | 80.0294 95.3705 27
213 | 77.8809 95.6391 27
214 | 75.7325 95.9077 27
215 | 73.584 96.2119 27
216 | 71.4356 96.5119 27
217 | 69.2872 96.8476 27
218 | 67.1387 97.1822 27
219 | 66.8702 97.2169 27
220 | 64.9903 97.4518 27
221 | 62.8419 97.6673 27
222 | 60.6934 97.8972 27
223 | 58.545 98.0404 27
224 | 56.3965 98.1525 27
225 | 54.2481 98.1837 27
226 | 52.0997 98.2553 27
227 | 49.9512 98.2553 27
228 | 47.8028 98.2553 27
229 | 45.6543 98.2553 27
230 | 43.5059 98.2553 27
231 | 41.3575 98.1837 27
232 | 39.209 98.1837 27
233 | 37.0606 98.1837 27
234 | 34.9122 98.1429 27
235 | 32.7637 98.0688 27
236 | 30.6153 97.9947 27
237 | 28.4668 97.8466 27
238 | 26.3184 97.6243 27
239 | 24.17 97.3362 27
240 | 23.0957 97.2169 27
241 | 22.0215 97.0975 27
242 | 19.8731 96.7792 27
243 | 17.7246 96.4609 27
244 | 15.5762 96.1426 27
245 | 13.4278 95.9039 27
246 | 11.2793 95.6652 27
247 | 9.13089 95.5061 27
248 | 6.98246 95.337 27
249 | 4.83402 95.2536 27
250 | 2.68558 95.1068 27
251 | 0.537142 95.1055 27
252 | -1.6113 95.1055 27
253 | -3.75973 95.1055 27
254 | -5.90817 95.1796 27
255 | -8.05661 95.3277 27
256 | -10.205 95.55 27
257 | -12.3535 95.7722 27
258 | -14.5019 96.1426 27
259 | -16.6504 96.4649 27
260 | -18.7988 96.823 27
261 | -20.7682 97.2169 27
262 | -20.9472 97.2527 27
263 | -23.0957 97.6673 27
264 | -25.2441 98.1525 27
265 | -27.3926 98.685 27
266 | -29.541 99.1863 27
267 | -30.4362 99.3653 27
268 | -31.6894 99.6079 27
269 | -33.8379 100.003 27
270 | -35.9863 100.309 27
271 | -38.1347 100.505 27
272 | -40.2832 100.57 27
273 | -42.4316 100.635 27
274 | -44.5801 100.661 27
275 | -46.7285 100.661 27
276 | -48.8769 100.661 27
277 | -51.0254 100.635 27
278 | -53.1738 100.635 27
279 | -55.3223 100.57 27
280 | -57.4707 100.505 27
281 | -59.6191 100.374 27
282 | -61.7676 100.244 27
283 | -63.916 99.936 27
284 | -66.0644 99.6003 27
285 | -67.3177 99.3653 27
286 | -68.2129 99.192 27
287 | -70.3613 98.7275 27
288 | -72.5098 98.3247 27
289 | -74.6582 97.989 27
290 | -76.8066 97.64 27
291 | -78.9551 97.2504 27
292 | -79.1341 97.2169 27
293 | -81.1035 96.8476 27
294 | -83.252 96.4448 27
295 | -85.4004 95.9748 27
296 | -87.5488 95.5048 27
297 | -89.5438 95.0684 27
298 | -89.6973 95.0338 27
299 | -91.8457 94.5649 27
300 | -93.9941 94.0949 27
301 | -96.1426 93.6249 27
302 | -98.291 93.0932 27
303 | -98.9624 92.92 27
304 | -100.439 92.5388 27
305 | -102.588 91.9465 27
306 | -104.736 91.3422 27
307 | -106.563 90.7715 27
308 | -106.885 90.6641 27
309 | -109.033 89.9052 27
310 | -111.182 89.0886 27
311 | -112.256 88.6231 27
312 | -113.33 88.1576 27
313 | -115.479 87.155 27
314 | -116.754 86.4747 27
315 | -117.627 85.9759 27
316 | -119.775 84.5948 27
317 | -120.151 84.3262 27
318 | -121.924 82.9083 27
319 | -122.754 82.1778 27
320 | -124.072 80.9168 27
321 | -124.889 80.0294 27
322 | -126.221 78.4436 27
323 | -126.658 77.8809 27
324 | -128.091 75.7325 27
325 | -128.369 75.2312 27
326 | -129.221 73.584 27
327 | -130.195 71.4356 27
328 | -130.518 70.6299 27
329 | -131.037 69.2872 27
330 | -131.73 67.1387 27
331 | -132.344 64.9903 27
332 | -132.666 63.7818 27
333 | -132.909 62.8419 27
334 | -133.394 60.6934 27
335 | -133.879 58.545 27
336 | -134.295 56.3965 27
337 | -134.711 54.2481 27
338 | -134.814 53.711 27
339 | -135.117 52.0997 27
340 | -135.404 49.9512 27
341 | -135.721 47.8028 27
342 | -135.958 45.6543 27
343 | -136.166 43.5059 27
344 | -136.354 41.3575 27
345 | -136.512 39.209 27
346 | -136.712 37.0606 27
347 | -136.927 34.9122 27
348 | -136.963 34.6436 27
349 | -137.198 32.7637 27
350 | -137.466 30.6153 27
351 | -137.802 28.4668 27
352 | -138.176 26.3184 27
353 | -138.592 24.17 27
354 | -139.074 22.0215 27
355 | -139.111 21.8425 27
356 | -139.493 19.8731 27
357 | -139.863 17.7246 27
358 | -140.293 15.5762 27
359 | -140.651 13.4278 27
360 | -141.009 11.2793 27
361 | -141.26 9.77543 27
362 | -141.364 9.13089 27
363 | -141.71 6.98246 27
364 | -141.987 4.83402 27
365 | -142.334 2.68558 27
366 | -142.585 0.537142 27
367 | -142.799 -1.6113 27
368 | -143.001 -3.75973 27
369 | -143.063 -5.90817 27
370 | -142.971 -8.05661 27
371 | -142.788 -10.205 27
372 | -142.558 -12.3535 27
373 | -142.427 -14.5019 27
374 | -142.427 -16.6504 27
375 | -142.578 -18.7988 27
376 | -142.676 -20.9472 27
377 | -142.614 -23.0957 27
378 | -142.289 -25.2441 27
379 | -141.842 -27.3926 27
380 | -141.305 -29.541 27
381 | -141.26 -29.8991 27
382 | -141.016 -31.6894 27
383 | -140.839 -33.8379 27
384 | -140.767 -35.9863 27
385 | -140.64 -38.1347 27
386 | -140.424 -40.2832 27
387 | -140.026 -42.4316 27
388 | -139.469 -44.5801 27
389 | -139.111 -45.9612 27
390 | -138.888 -46.7285 27
391 | -138.161 -48.8769 27
392 | -137.48 -51.0254 27
393 | -136.963 -52.577 27
394 | -136.729 -53.1738 27
395 | -135.803 -55.3223 27
396 | -134.856 -57.4707 27
397 | -134.814 -57.5533 27
398 | -133.594 -59.6191 27
399 | -132.666 -61.32 27
400 | -132.397 -61.7676 27
401 | -131.25 -63.916 27
402 | -130.518 -65.3809 27
403 | -130.176 -66.0644 27
404 | -129.13 -68.2129 27
405 | -128.369 -69.7347 27
406 | -128.056 -70.3613 27
407 | -126.84 -72.5098 27
408 | -126.221 -73.4576 27
409 | -125.37 -74.6582 27
410 | -124.072 -76.3889 27
411 | -123.714 -76.8066 27
412 | -121.924 -78.8954 27
413 | -121.864 -78.9551 27
414 | -119.775 -80.9339 27
415 | -119.574 -81.1035 27
416 | -117.627 -82.7431 27
417 | -116.936 -83.252 27
418 | -115.479 -84.3262 27
419 | -113.778 -85.4004 27
420 | -113.33 -85.6689 27
421 | -111.182 -86.8924 27
422 | -110.107 -87.5488 27
423 | -109.033 -88.2439 27
424 | -107.133 -89.6973 27
425 | -106.885 -89.8868 27
426 | -104.803 -91.8457 27
427 | -104.736 -91.9089 27
428 | -102.588 -93.9225 27
429 | -102.505 -93.9941 27
430 | -100.439 -95.6726 27
431 | -99.861 -96.1426 27
432 | -98.291 -97.2765 27
433 | -96.8863 -98.291 27
434 | -96.1426 -98.7744 27
435 | -93.9941 -100.171 27
436 | -93.581 -100.439 27
437 | -91.8457 -101.379 27
438 | -89.6973 -102.261 27
439 | -88.8618 -102.588 27
440 | -87.5488 -103.042 27
441 | -85.4004 -103.662 27
442 | -83.252 -104.503 27
443 | -82.7148 -104.736 27
444 | -81.1035 -105.381 27
445 | -78.9551 -106.482 27
446 | -78.2114 -106.885 27
447 | -76.8066 -107.615 27
448 | -74.6582 -108.646 27
449 | -73.6914 -109.033 27
450 | -72.5098 -109.455 27
451 | -70.3613 -110.107 27
452 | -68.2129 -110.664 27
453 | -66.0644 -111.139 27
454 | -65.8496 -111.182 27
455 | -63.916 -111.527 27
456 | -61.7676 -111.778 27
457 | -59.6191 -111.998 27
458 | -57.4707 -112.211 27
459 | -55.3223 -112.349 27
460 | -53.1738 -112.598 27
461 | -51.0254 -112.87 27
462 | -48.8769 -113.276 27
463 | -48.6084 -113.33 27
464 | -46.7285 -113.631 27
465 | -44.5801 -113.975 27
466 | -42.4316 -114.217 27
467 | -40.2832 -114.498 27
468 | -38.1347 -114.648 27
469 | -35.9863 -114.916 27
470 | -33.8379 -115.12 27
471 | -31.6894 -115.325 27
472 | -30.0781 -115.479 27
473 |
--------------------------------------------------------------------------------
/assets/polygons/raw_mask_92.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/assets/polygons/raw_mask_92.txt
--------------------------------------------------------------------------------
/doc/doxygen_log.txt:
--------------------------------------------------------------------------------
1 | Searching for include files...
2 | Searching for example files...
3 | Searching for images...
4 | Searching for dot files...
5 | Searching for msc files...
6 | Searching for dia files...
7 | Searching for files to exclude
8 | Searching INPUT for files to process...
9 | Searching for files in directory C:/Users/dl.chen/Documents/Python_Practices/doc
10 | Reading and parsing tag files
11 | Parsing files
12 | Reading C:/Users/dl.chen/Documents/Python_Practices/doc/trimap_module.py...
13 | Parsing file C:/Users/dl.chen/Documents/Python_Practices/doc/trimap_module.py...
14 | Building group list...
15 | Building directory list...
16 | Building namespace list...
17 | Building file list...
18 | Building class list...
19 | Associating documentation with classes...
20 | Computing nesting relations for classes...
21 | Building example list...
22 | Searching for enumerations...
23 | Searching for documented typedefs...
24 | Searching for members imported via using declarations...
25 | Searching for included using directives...
26 | Searching for documented variables...
27 | Building interface member list...
28 | Building member list...
29 | Searching for friends...
30 | Searching for documented defines...
31 | Computing class inheritance relations...
32 | Computing class usage relations...
33 | Flushing cached template relations that have become invalid...
34 | Computing class relations...
35 | Add enum values to enums...
36 | Searching for member function documentation...
37 | Creating members for template instances...
38 | Building page list...
39 | Search for main page...
40 | Computing page relations...
41 | Determining the scope of groups...
42 | Sorting lists...
43 | Freeing entry tree
44 | Determining which enums are documented
45 | Computing member relations...
46 | Building full member lists recursively...
47 | Adding members to member groups.
48 | Computing member references...
49 | Inheriting documentation...
50 | Generating disk names...
51 | Adding source references...
52 | Adding xrefitems...
53 | Sorting member lists...
54 | Computing dependencies between directories...
55 | Generating citations page...
56 | Counting data structures...
57 | Resolving user defined references...
58 | Finding anchors and sections in the documentation...
59 | Transferring function references...
60 | Combining using relations...
61 | Adding members to index pages...
62 | Generating style sheet...
63 | Generating search indices...
64 | Generating example documentation...
65 | Generating file sources...
66 | Generating code for file trimap_module.py...
67 | Generating file documentation...
68 | Generating docs for file trimap_module.py...
69 | Generating page documentation...
70 | Generating group documentation...
71 | Generating class documentation...
72 | Generating namespace index...
73 | Generating docs for namespace trimap_module
74 | Generating graph info page...
75 | Generating directory documentation...
76 | Generating index page...
77 | Generating page index...
78 | Generating module index...
79 | Generating namespace index...
80 | Generating namespace member index...
81 | Generating annotated compound index...
82 | Generating alphabetical compound index...
83 | Generating hierarchical class index...
84 | Generating member index...
85 | Generating file index...
86 | Generating file member index...
87 | Generating example index...
88 | finalizing index lists...
89 | writing tag file...
90 | lookup cache used 0/65536 hits=0 misses=0
91 | finished...
92 | *** Doxygen has finished
--------------------------------------------------------------------------------
/doc/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/bc_s.png
--------------------------------------------------------------------------------
/doc/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/bdwn.png
--------------------------------------------------------------------------------
/doc/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/closed.png
--------------------------------------------------------------------------------
/doc/html/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/doc.png
--------------------------------------------------------------------------------
/doc/html/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/doxygen.png
--------------------------------------------------------------------------------
/doc/html/dynsections.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2017 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License along
18 | with this program; if not, write to the Free Software Foundation, Inc.,
19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 |
21 | @licend The above is the entire license notice
22 | for the JavaScript code in this file
23 | */
24 | function toggleVisibility(linkObj)
25 | {
26 | var base = $(linkObj).attr('id');
27 | var summary = $('#'+base+'-summary');
28 | var content = $('#'+base+'-content');
29 | var trigger = $('#'+base+'-trigger');
30 | var src=$(trigger).attr('src');
31 | if (content.is(':visible')===true) {
32 | content.hide();
33 | summary.show();
34 | $(linkObj).addClass('closed').removeClass('opened');
35 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
36 | } else {
37 | content.show();
38 | summary.hide();
39 | $(linkObj).removeClass('closed').addClass('opened');
40 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
41 | }
42 | return false;
43 | }
44 |
45 | function updateStripes()
46 | {
47 | $('table.directory tr').
48 | removeClass('even').filter(':visible:even').addClass('even');
49 | }
50 |
51 | function toggleLevel(level)
52 | {
53 | $('table.directory tr').each(function() {
54 | var l = this.id.split('_').length-1;
55 | var i = $('#img'+this.id.substring(3));
56 | var a = $('#arr'+this.id.substring(3));
57 | if (l
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: File List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here is a list of all files with brief descriptions:
73 |
74 |
75 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/doc/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/folderclosed.png
--------------------------------------------------------------------------------
/doc/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/folderopen.png
--------------------------------------------------------------------------------
/doc/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: Main Page
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
69 |
70 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/doc/html/menu.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2017 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License along
18 | with this program; if not, write to the Free Software Foundation, Inc.,
19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 |
21 | @licend The above is the entire license notice
22 | for the JavaScript code in this file
23 | */
24 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
25 | function makeTree(data,relPath) {
26 | var result='';
27 | if ('children' in data) {
28 | result+='';
35 | }
36 | return result;
37 | }
38 |
39 | $('#main-nav').append(makeTree(menudata,relPath));
40 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
41 | if (searchEnabled) {
42 | if (serverSide) {
43 | $('#main-menu').append(' ');
44 | } else {
45 | $('#main-menu').append(' ');
46 | }
47 | }
48 | $('#main-menu').smartmenus();
49 | }
50 | /* @license-end */
51 |
--------------------------------------------------------------------------------
/doc/html/menudata.js:
--------------------------------------------------------------------------------
1 | /*
2 | @ @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2017 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License along
18 | with this program; if not, write to the Free Software Foundation, Inc.,
19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 |
21 | @licend The above is the entire license notice
22 | for the JavaScript code in this file
23 | */
24 | var menudata={children:[
25 | {text:"Main Page",url:"index.html"},
26 | {text:"Namespaces",url:"namespaces.html",children:[
27 | {text:"Namespace List",url:"namespaces.html"}]},
28 | {text:"Files",url:"files.html",children:[
29 | {text:"File List",url:"files.html"}]}]}
30 |
--------------------------------------------------------------------------------
/doc/html/namespaces.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: Namespace List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here is a list of all namespaces with brief descriptions:
73 |
74 |
75 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/doc/html/namespacetrimap__module.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: trimap_module Namespace Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
63 |
67 |
68 |
69 |
70 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/doc/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/nav_f.png
--------------------------------------------------------------------------------
/doc/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/nav_g.png
--------------------------------------------------------------------------------
/doc/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/nav_h.png
--------------------------------------------------------------------------------
/doc/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/open.png
--------------------------------------------------------------------------------
/doc/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/doc/html/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['trimap_5fmodule',['trimap_module',['../namespacetrimap__module.html',1,'']]],
4 | ['trimap_5fmodule_2epy',['trimap_module.py',['../trimap__module_8py.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/html/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/search/close.png
--------------------------------------------------------------------------------
/doc/html/search/files_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/doc/html/search/files_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['trimap_5fmodule_2epy',['trimap_module.py',['../trimap__module_8py.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/search/mag_sel.png
--------------------------------------------------------------------------------
/doc/html/search/namespaces_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/doc/html/search/namespaces_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['trimap_5fmodule',['trimap_module',['../namespacetrimap__module.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/html/search/search.css:
--------------------------------------------------------------------------------
1 | /*---------------- Search Box */
2 |
3 | #FSearchBox {
4 | float: left;
5 | }
6 |
7 | #MSearchBox {
8 | white-space : nowrap;
9 | float: none;
10 | margin-top: 8px;
11 | right: 0px;
12 | width: 170px;
13 | height: 24px;
14 | z-index: 102;
15 | }
16 |
17 | #MSearchBox .left
18 | {
19 | display:block;
20 | position:absolute;
21 | left:10px;
22 | width:20px;
23 | height:19px;
24 | background:url('search_l.png') no-repeat;
25 | background-position:right;
26 | }
27 |
28 | #MSearchSelect {
29 | display:block;
30 | position:absolute;
31 | width:20px;
32 | height:19px;
33 | }
34 |
35 | .left #MSearchSelect {
36 | left:4px;
37 | }
38 |
39 | .right #MSearchSelect {
40 | right:5px;
41 | }
42 |
43 | #MSearchField {
44 | display:block;
45 | position:absolute;
46 | height:19px;
47 | background:url('search_m.png') repeat-x;
48 | border:none;
49 | width:115px;
50 | margin-left:20px;
51 | padding-left:4px;
52 | color: #909090;
53 | outline: none;
54 | font: 9pt Arial, Verdana, sans-serif;
55 | -webkit-border-radius: 0px;
56 | }
57 |
58 | #FSearchBox #MSearchField {
59 | margin-left:15px;
60 | }
61 |
62 | #MSearchBox .right {
63 | display:block;
64 | position:absolute;
65 | right:10px;
66 | top:8px;
67 | width:20px;
68 | height:19px;
69 | background:url('search_r.png') no-repeat;
70 | background-position:left;
71 | }
72 |
73 | #MSearchClose {
74 | display: none;
75 | position: absolute;
76 | top: 4px;
77 | background : none;
78 | border: none;
79 | margin: 0px 4px 0px 0px;
80 | padding: 0px 0px;
81 | outline: none;
82 | }
83 |
84 | .left #MSearchClose {
85 | left: 6px;
86 | }
87 |
88 | .right #MSearchClose {
89 | right: 2px;
90 | }
91 |
92 | .MSearchBoxActive #MSearchField {
93 | color: #000000;
94 | }
95 |
96 | /*---------------- Search filter selection */
97 |
98 | #MSearchSelectWindow {
99 | display: none;
100 | position: absolute;
101 | left: 0; top: 0;
102 | border: 1px solid #90A5CE;
103 | background-color: #F9FAFC;
104 | z-index: 10001;
105 | padding-top: 4px;
106 | padding-bottom: 4px;
107 | -moz-border-radius: 4px;
108 | -webkit-border-top-left-radius: 4px;
109 | -webkit-border-top-right-radius: 4px;
110 | -webkit-border-bottom-left-radius: 4px;
111 | -webkit-border-bottom-right-radius: 4px;
112 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
113 | }
114 |
115 | .SelectItem {
116 | font: 8pt Arial, Verdana, sans-serif;
117 | padding-left: 2px;
118 | padding-right: 12px;
119 | border: 0px;
120 | }
121 |
122 | span.SelectionMark {
123 | margin-right: 4px;
124 | font-family: monospace;
125 | outline-style: none;
126 | text-decoration: none;
127 | }
128 |
129 | a.SelectItem {
130 | display: block;
131 | outline-style: none;
132 | color: #000000;
133 | text-decoration: none;
134 | padding-left: 6px;
135 | padding-right: 12px;
136 | }
137 |
138 | a.SelectItem:focus,
139 | a.SelectItem:active {
140 | color: #000000;
141 | outline-style: none;
142 | text-decoration: none;
143 | }
144 |
145 | a.SelectItem:hover {
146 | color: #FFFFFF;
147 | background-color: #3D578C;
148 | outline-style: none;
149 | text-decoration: none;
150 | cursor: pointer;
151 | display: block;
152 | }
153 |
154 | /*---------------- Search results window */
155 |
156 | iframe#MSearchResults {
157 | width: 60ex;
158 | height: 15em;
159 | }
160 |
161 | #MSearchResultsWindow {
162 | display: none;
163 | position: absolute;
164 | left: 0; top: 0;
165 | border: 1px solid #000;
166 | background-color: #EEF1F7;
167 | z-index:10000;
168 | }
169 |
170 | /* ----------------------------------- */
171 |
172 |
173 | #SRIndex {
174 | clear:both;
175 | padding-bottom: 15px;
176 | }
177 |
178 | .SREntry {
179 | font-size: 10pt;
180 | padding-left: 1ex;
181 | }
182 |
183 | .SRPage .SREntry {
184 | font-size: 8pt;
185 | padding: 1px 5px;
186 | }
187 |
188 | body.SRPage {
189 | margin: 5px 2px;
190 | }
191 |
192 | .SRChildren {
193 | padding-left: 3ex; padding-bottom: .5em
194 | }
195 |
196 | .SRPage .SRChildren {
197 | display: none;
198 | }
199 |
200 | .SRSymbol {
201 | font-weight: bold;
202 | color: #425E97;
203 | font-family: Arial, Verdana, sans-serif;
204 | text-decoration: none;
205 | outline: none;
206 | }
207 |
208 | a.SRScope {
209 | display: block;
210 | color: #425E97;
211 | font-family: Arial, Verdana, sans-serif;
212 | text-decoration: none;
213 | outline: none;
214 | }
215 |
216 | a.SRSymbol:focus, a.SRSymbol:active,
217 | a.SRScope:focus, a.SRScope:active {
218 | text-decoration: underline;
219 | }
220 |
221 | span.SRScope {
222 | padding-left: 4px;
223 | }
224 |
225 | .SRPage .SRStatus {
226 | padding: 2px 5px;
227 | font-size: 8pt;
228 | font-style: italic;
229 | }
230 |
231 | .SRResult {
232 | display: none;
233 | }
234 |
235 | DIV.searchresults {
236 | margin-left: 10px;
237 | margin-right: 10px;
238 | }
239 |
240 | /*---------------- External search page results */
241 |
242 | .searchresult {
243 | background-color: #F0F3F8;
244 | }
245 |
246 | .pages b {
247 | color: white;
248 | padding: 5px 5px 3px 5px;
249 | background-image: url("../tab_a.png");
250 | background-repeat: repeat-x;
251 | text-shadow: 0 1px 1px #000000;
252 | }
253 |
254 | .pages {
255 | line-height: 17px;
256 | margin-left: 4px;
257 | text-decoration: none;
258 | }
259 |
260 | .hl {
261 | font-weight: bold;
262 | }
263 |
264 | #searchresults {
265 | margin-bottom: 20px;
266 | }
267 |
268 | .searchpages {
269 | margin-top: 10px;
270 | }
271 |
272 |
--------------------------------------------------------------------------------
/doc/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/search/search_l.png
--------------------------------------------------------------------------------
/doc/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/search/search_m.png
--------------------------------------------------------------------------------
/doc/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/search/search_r.png
--------------------------------------------------------------------------------
/doc/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "t",
4 | 1: "t",
5 | 2: "t"
6 | };
7 |
8 | var indexSectionNames =
9 | {
10 | 0: "all",
11 | 1: "namespaces",
12 | 2: "files"
13 | };
14 |
15 | var indexSectionLabels =
16 | {
17 | 0: "All",
18 | 1: "Namespaces",
19 | 2: "Files"
20 | };
21 |
22 |
--------------------------------------------------------------------------------
/doc/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/splitbar.png
--------------------------------------------------------------------------------
/doc/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/sync_off.png
--------------------------------------------------------------------------------
/doc/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/sync_on.png
--------------------------------------------------------------------------------
/doc/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/tab_a.png
--------------------------------------------------------------------------------
/doc/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/tab_b.png
--------------------------------------------------------------------------------
/doc/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/tab_h.png
--------------------------------------------------------------------------------
/doc/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/doc/html/tab_s.png
--------------------------------------------------------------------------------
/doc/html/tabs.css:
--------------------------------------------------------------------------------
1 | .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
--------------------------------------------------------------------------------
/doc/html/trimap__module_8py.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: trimap_module.py File Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
63 |
69 |
79 |
80 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/doc/html/trimap__module_8py_source.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Automatic Trimap Generator: trimap_module.py Source File
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Automatic Trimap Generator
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
69 |
70 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/doc/py_filter.bat.txt:
--------------------------------------------------------------------------------
1 | doxypypy -a -c %1
--------------------------------------------------------------------------------
/doc/trimap_module.py:
--------------------------------------------------------------------------------
1 | import cv2, os, sys
2 | import numpy as np
3 |
4 | def check_image(image):
5 | """
6 | Checks whether the input image is binary.
7 | To be completed: optimization in nested for-loop using Cython
8 |
9 | Args:
10 | arg1: image
11 |
12 | Returns:
13 | binary image
14 |
15 | Raises:
16 | RGB image, grayscale image, all-black, and all-white image
17 |
18 | """
19 | width = image.shape[0]; height = image.shape[1];
20 |
21 | # So far, input image is converted to grayscale;
22 | # thus this is not an issue at the moment
23 | if len(image.shape) > 2:
24 | print("ERROR: non-binary image (RGB)");
25 | sys.exit();
26 |
27 | if cv2.countNonZero(image) == 0:
28 | print("ERROR: non-binary image (all black)");
29 | sys.exit();
30 | else:
31 | for i in range(0,width):
32 | for j in range (0,height):
33 | if (image[i,j] == 255 ):
34 | print("ERROR: non-binary (all white)");
35 | sys.exit();
36 | elif (image[i,j] != 0 and image[i,j] != 255 ):
37 | print("ERROR: non-binary (grayscale)")
38 | sys.exit();
39 | else:
40 | return True
41 |
42 | def trimap(image, name, size, number, erosion=False):
43 | """
44 | This function creates a trimap based on simple dilation algorithm
45 |
46 | Args:
47 | arg1: binary image
48 | arg2: name in string
49 | arg3: unknown region pixel
50 | arg4: number in string (for naming purpose)
51 | arg5: erosion value in pixel (default is False)
52 |
53 | Returns:
54 | trimap
55 |
56 | Raises:
57 | non-binary image, complete foreground erosion
58 | """
59 | check_image(image);
60 |
61 | pixels = 2*size + 1; ## Double and plus 1 to have an odd-sized kernel
62 | kernel = np.ones((pixels,pixels),np.uint8) ## How many pixel of extension do I get
63 |
64 | if erosion is not False:
65 | erosion = int(erosion)
66 | erosion_kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
67 | image = cv2.erode(image, erosion_kernel, iterations=erosion) ## How many erosion do you expect
68 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
69 | # Error-handler to prevent entire foreground annihilation
70 | if cv2.countNonZero(image) == 0:
71 | print("ERROR: foreground has been entirely eroded");
72 | sys.exit();
73 |
74 | dilation = cv2.dilate(image, kernel, iterations = 1)
75 |
76 | dilation = np.where(dilation == 255, 127, dilation) ## WHITE to GRAY
77 | remake = np.where(dilation != 127, 0, dilation) ## Smoothing
78 | remake = np.where(image > 127, 200, dilation) ## mark the tumor inside GRAY
79 |
80 | remake = np.where(remake < 127, 0, remake) ## Embelishment
81 | remake = np.where(remake > 200, 0, remake) ## Embelishment
82 | remake = np.where(remake == 200, 255, remake) ## GRAY to WHITE
83 |
84 | path = "./images/results/" ## Change the directory
85 | new_name = '{}px_'.format(size) + name + '_{}.png'.format(number);
86 | cv2.imwrite(os.path.join(path , new_name) , remake)
87 |
88 | """ Uncomment to test the Python code
89 | if __name__ == '__main__':
90 | name = "./images/test_images/test_image_0.png"; # ONLY test_image_0.png shall succeed
91 | image = cv2.imread(name, cv2.IMREAD_GRAYSCALE)
92 | size = 10;
93 | number = name[-5];
94 | title = "test_image"
95 |
96 | trimap(image, title, size, number, erosion=10);
97 | print("Here")
98 | """
99 |
--------------------------------------------------------------------------------
/images/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/.DS_Store
--------------------------------------------------------------------------------
/images/examples/bg_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/bg_img.png
--------------------------------------------------------------------------------
/images/examples/closing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/closing.png
--------------------------------------------------------------------------------
/images/examples/closing_trimap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/closing_trimap.png
--------------------------------------------------------------------------------
/images/examples/closing_trimap_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/closing_trimap_new.png
--------------------------------------------------------------------------------
/images/examples/dilation_effect.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/dilation_effect.gif
--------------------------------------------------------------------------------
/images/examples/eroded_image.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/eroded_image.gif
--------------------------------------------------------------------------------
/images/examples/erosion_effect.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/erosion_effect.gif
--------------------------------------------------------------------------------
/images/examples/fg_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/fg_img.png
--------------------------------------------------------------------------------
/images/examples/full_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/full_img.png
--------------------------------------------------------------------------------
/images/examples/opening.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/opening.png
--------------------------------------------------------------------------------
/images/examples/opening_trimap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/opening_trimap.png
--------------------------------------------------------------------------------
/images/examples/opening_trimap_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/opening_trimap_new.png
--------------------------------------------------------------------------------
/images/examples/seg_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/seg_img.png
--------------------------------------------------------------------------------
/images/examples/trimap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/trimap.png
--------------------------------------------------------------------------------
/images/examples/trimap_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/trimap_20.png
--------------------------------------------------------------------------------
/images/examples/trimap_30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/examples/trimap_30.png
--------------------------------------------------------------------------------
/images/practices/binary_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/practices/binary_0.png
--------------------------------------------------------------------------------
/images/practices/binary_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/practices/binary_1.png
--------------------------------------------------------------------------------
/images/practices/binary_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/practices/binary_2.png
--------------------------------------------------------------------------------
/images/practices/binary_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/practices/binary_3.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_00.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_01.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_03.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_05.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_07.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_09.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_1.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_11.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_2.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_01.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_03.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_05.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_07.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_09.png
--------------------------------------------------------------------------------
/images/results/10px_test_image_Erosion_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/10px_test_image_Erosion_11.png
--------------------------------------------------------------------------------
/images/results/20px_test_image_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/results/20px_test_image_9.png
--------------------------------------------------------------------------------
/images/test_images/test_image_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_0.png
--------------------------------------------------------------------------------
/images/test_images/test_image_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_1.png
--------------------------------------------------------------------------------
/images/test_images/test_image_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_10.png
--------------------------------------------------------------------------------
/images/test_images/test_image_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_11.png
--------------------------------------------------------------------------------
/images/test_images/test_image_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_12.png
--------------------------------------------------------------------------------
/images/test_images/test_image_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_2.png
--------------------------------------------------------------------------------
/images/test_images/test_image_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_3.png
--------------------------------------------------------------------------------
/images/test_images/test_image_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_4.png
--------------------------------------------------------------------------------
/images/test_images/test_image_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_5.png
--------------------------------------------------------------------------------
/images/test_images/test_image_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_6.png
--------------------------------------------------------------------------------
/images/test_images/test_image_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_7.png
--------------------------------------------------------------------------------
/images/test_images/test_image_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_8.png
--------------------------------------------------------------------------------
/images/test_images/test_image_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/images/test_images/test_image_9.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/requirements.txt
--------------------------------------------------------------------------------
/src/binarymask.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import cv2
3 | import math
4 | import sys, os
5 | import matplotlib.pyplot as plt
6 | from matplotlib.path import Path
7 |
8 | def pnpoly(Polygon, vertex):
9 | """
10 | Description: decide whether a point is inside or outside a closed polygon
11 | Input: a 2-D polygon with at least three distinct points
12 | a 2-D vertex using (x, y) format
13 | Output: 0 (if outside) or 1 (if inside or attached to the polygon)
14 | """
15 | c = 0
16 | if (len(Polygon) < 3):
17 | print("ERROR: polygon requires at least three vertices")
18 | sys.exit
19 | elif (len(vertex) != 2):
20 | print("ERROR: vertex is not in 2D format")
21 | sys.exit
22 |
23 | for i in range(len(Polygon)):
24 | if (len(Polygon[i]) != 2):
25 | print("ERROR: vertex of the polygon is not in 2D format")
26 | sys.exit
27 |
28 | check = Path( Polygon ).contains_point( vertex )
29 | c = (check is True and 1) or (check is False and 0)
30 | return c
31 |
32 | def binary_mask(Polygon, AllPixels, savePNG=False, saveTXT=False):
33 | """
34 | TODO: Fix this part
35 | Description: Generate a binary mask based on a given 2-D contour polygon
36 | Polygon: The polygon containing contour points
37 | AllPixels: The generated binary mask
38 | savePNG: save the generated mask as a .png file
39 | saveTXT: save the generated mask as a .txt file
40 | """
41 | rows = int( math.sqrt(len(AllPixels)) )
42 | cols = int( math.sqrt(len(AllPixels)) )
43 | final = np.zeros(rows*cols);
44 |
45 | for i in range(rows):
46 | for j in range(cols):
47 | final[i*cols+j] = pnpoly(Polygon, AllPixels[i*cols+j])
48 |
49 | return final
50 |
51 | if __name__ == "__main__":
52 | Polygon = [[0.0, 0.0], [5.0, 0.0], [5.0, 5.0], [0.0, 5.0]]
53 | # point_00 = pnpoly(Polygon, [2.0, 2.0])
54 | # point_01 = pnpoly(Polygon, [12.0, 15.0])
55 | TestPixels = [];
56 | for i in range(10):
57 | for j in range(10):
58 | TestPixels.append( [i,j] )
59 |
60 | results = binary_mask(Polygon, TestPixels)
61 | # cv2.imshow('img', results)
62 | # cv2.waitKey(0)
63 | # cv2.destroyAllWindows()
64 |
65 | test_poly = "./assets/polygons/raw_mask_30.txt"
66 | test = np.loadtxt(test_poly);
67 |
68 | ROI_x = []; ROI_y = []; ROI_z = []; ROI_xy = [];
69 | for i in range( int( test.size/3 ) ):
70 | ROI_x.append( test[i][0] )
71 | ROI_y.append( test[i][1] )
72 | ROI_z.append( test[i][2] )
73 | ROI_xy.append([test[i][0], test[i][1]])
74 |
75 | # FIXME
76 | # RawVoxels= [];
77 | # for i in range(512):
78 | # for j in range (512):
79 | # RawVoxels.append( [-275+i*1.074219 , -275+j*1.074219 ] )
80 | # check_results = binary_mask(ROI_xy, RawVoxels);
81 | # plt.scatter(ROI_x, ROI_y, s=2, color='black')
82 | # plt.show()
83 |
--------------------------------------------------------------------------------
/src/feature_extraction.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | import numpy as np
4 | import cv2, os, sys
5 | # Input image is a numpy array with pixel value is BGR
6 | # (opencv default)
7 |
8 | #1. grayscale rgb mean and variance
9 | def get_pixel_summary(image):
10 | img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
11 | luminance = img_gray.mean()
12 | red = image[:,:,2].mean()
13 | green = image[:,:,1].mean()
14 | blue = image[:,:,0].mean()
15 |
16 | gray_var = img_gray.var()
17 | red_var = image[:,:,2].var()
18 | green_var = image[:,:,1].var()
19 | blue_var = image[:,:,0].var()
20 |
21 | return luminance, red, green, blue, gray_var, red_var, green_var, blue_var
22 |
23 | #2. distinct pixel rate
24 | def get_dist_pixel_rate(image):
25 | height, width,_ = image.shape
26 | dist_pixel = len(np.unique( [str(x)
27 | for x in image[:,:,:].reshape(-1, 3).tolist()]))
28 | dist_pixel_rate = dist_pixel / float(height * width)
29 | return dist_pixel_rate
30 |
31 | #3. colorfulness
32 | def image_colorfulness(image):
33 | (B, G, R) = cv2.split(image.astype("float"))
34 | rg = np.absolute(R - G)
35 | yb = np.absolute(0.5 * (R + G) - B)
36 | (rbMean, rbStd) = (np.mean(rg), np.std(rg))
37 | (ybMean, ybStd) = (np.mean(yb), np.std(yb))
38 | stdRoot = np.sqrt((rbStd ** 2) + (ybStd ** 2))
39 | meanRoot = np.sqrt((rbMean ** 2) + (ybMean ** 2))
40 | colorfulness = stdRoot + (0.3 * meanRoot)
41 | return colorfulness
42 |
43 | #4. saturation
44 | def get_saturation(image):
45 | img_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
46 | saturation = img_hsv[:,:,1].mean()
47 | return saturation
48 |
49 | #5 blur
50 | def get_blur(image):
51 | blur = cv2.Laplacian(image, cv2.CV_64F).var()
52 | return blur
53 |
54 | #6 sharpness
55 | def get_sharpness(image):
56 | gy, gx = np.gradient(img_gray)
57 | gnorm = np.sqrt(gx**2 + gy**2)
58 | sharpness = np.average(gnorm)
59 | return sharpness
60 |
61 | if __name__ == '__main__':
62 | path = '../images/test_images/test_image_12.png'
63 | image = cv2.imread(path, cv2.IMREAD_ANYCOLOR)
64 | cv2.imshow('Displayed Image', image)
65 | cv2.waitKey(0)
66 | cv2.destroyAllWindows()
67 |
--------------------------------------------------------------------------------
/src/foreground_scaling.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | import cv2, os, sys
4 | import numpy as np
5 | from abc import ABC, abstractmethod
6 |
7 | def extractImage(path):
8 | # error handller if the intended path is not found
9 | image = cv2.imread(path, cv2.IMREAD_GRAYSCALE);
10 | return image
11 |
12 | def checkImage(image):
13 | """
14 | Args:
15 | image: input image to be checked
16 | Returns:
17 | binary image
18 | Raises:
19 | RGB image, grayscale image, all-black, and all-white image
20 |
21 | """
22 | if len(image.shape) > 2:
23 | print("ERROR: non-binary image (RGB)");
24 | sys.exit();
25 |
26 | smallest = image.min(axis=0).min(axis=0); # lowest pixel value; should be 0 (black)
27 | largest = image.max(axis=0).max(axis=0); # highest pixel value; should be 1 (white)
28 |
29 | if (smallest == 0 and largest == 0):
30 | print("ERROR: non-binary image (all black)");
31 | sys.exit();
32 | elif (smallest == 255 and largest == 255):
33 | print("ERROR: non-binary image (all white)");
34 | sys.exit();
35 | elif (smallest > 0 or largest < 255 ):
36 | print("ERROR: non-binary image (grayscale)");
37 | sys.exit();
38 | else:
39 | return True
40 |
41 |
42 | class FGScale(ABC):
43 | """
44 | An abstract base class that enables image erosion or dilation PRE trimap
45 | Attribute: binary image
46 | Method: scaling with two inputs: image and iterations
47 | """
48 | def __init__(self, image):
49 | self.image = image;
50 |
51 | @abstractmethod
52 | def scaling(self, image, iteration):
53 | pass
54 |
55 | class Erosion(FGScale):
56 | def __init__(self, image):
57 | self.image = image
58 |
59 | def scaling(self, image, erosion):
60 | erosion = int(erosion)
61 | kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
62 | image = cv2.erode(image, kernel, iterations=erosion) ## The number of erosions
63 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
64 | # Error-handler to prevent entire foreground annihilation
65 | if cv2.countNonZero(image) == 0:
66 | print("ERROR: foreground has been entirely eroded");
67 | sys.exit();
68 | return image;
69 |
70 | class Dilation(FGScale):
71 | def __init__(self, image):
72 | self.image = image
73 |
74 | def scaling(self, image, dilation):
75 | dilation = int(dilation)
76 | kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
77 | image = cv2.dilate(image, kernel, iterations=dilation) ## The number of dilations
78 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
79 | # Error-handler to prevent entire foreground domination
80 | height = image.shape[0];
81 | width = image.shape[1];
82 | totalpixels = height*width;
83 | n_white_pix = np.sum(image == 255)
84 |
85 | if n_white_pix == totalpixels:
86 | print("ERROR: foreground has been entirely expanded");
87 | sys.exit();
88 | return image;
89 |
90 |
91 | #############################################
92 | ### TESTING SECTION ###
93 | #############################################
94 | if __name__ == '__main__':
95 |
96 | path = "./images/test_images/test_image_12.png"
97 | image = extractImage(path)
98 |
99 | unit01 = Erosion(image)
100 | new_image = unit01.scaling(image, 2)
101 |
102 | cv2.imshow('Displayed Image', new_image)
103 | cv2.waitKey(0)
104 | cv2.destroyAllWindows()
105 |
--------------------------------------------------------------------------------
/test/README.md:
--------------------------------------------------------------------------------
1 | ## Designated for Unit Testing ##
2 |
3 | Issues to be addressed:
4 |
5 | - [ ] Prevent image erosion from eroding the entire image
6 | - [ ] Adaptive method to decide maximum erosion kernel
7 | - [ ] Reject all non-binary images (monochrome, grayscale, and RGB)
8 | - [ ] Unsupervised Learning Method to diminish all non-dominating foreground regions
9 |
--------------------------------------------------------------------------------
/test/__pycache__/trimap_module.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lnugraha/trimap_generator/a279562b0d0f387896330cf88549e67618d1eb7f/test/__pycache__/trimap_module.cpython-36.pyc
--------------------------------------------------------------------------------
/test/test_trimap_module.py:
--------------------------------------------------------------------------------
1 | import unittest
2 | from trimap_module import trimap
3 |
4 | class CheckImages(unittest.TestCase):
5 | pass
6 |
7 |
8 |
9 |
10 | if __name__ == '__main__':
11 | unittest.main()
12 |
--------------------------------------------------------------------------------
/trimap_class.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | import cv2, os, sys
4 | import numpy as np
5 | from abc import ABC, abstractmethod
6 |
7 | def extractImage(path):
8 | # error handller if the intended path is not found
9 | image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
10 | return image
11 |
12 | def checkImage(image):
13 | """
14 | Args:
15 | image: input image to be checked
16 | Returns:
17 | binary image
18 | Raises:
19 | RGB image, grayscale image, all-black, and all-white image
20 |
21 | """
22 | if len(image.shape) > 2:
23 | print("ERROR: non-binary image (RGB)")
24 | sys.exit()
25 |
26 | # lowest pixel value; should be 0 (black)
27 | smallest = image.min(axis=0).min(axis=0)
28 | # highest pixel value; should be 1 (white)
29 | largest = image.max(axis=0).max(axis=0)
30 |
31 | if (smallest == 0 and largest == 0):
32 | print("ERROR: non-binary image (all black)")
33 | sys.exit()
34 | elif (smallest == 255 and largest == 255):
35 | print("ERROR: non-binary image (all white)")
36 | sys.exit()
37 | elif (smallest > 0 or largest < 255 ):
38 | print("ERROR: non-binary image (grayscale)")
39 | sys.exit()
40 | else:
41 | return True
42 |
43 | class Toolbox:
44 | def __init__(self, image):
45 | self.image = image
46 |
47 | @property
48 | def printImage(self):
49 | """
50 | Print image into a file for checking purpose
51 | unitTest = Toolbox(image);
52 | unitTest.printImage(image);
53 | """
54 | f = open("image_results.dat", "w+")
55 | for i in range(0, self.image.shape[0]):
56 | for j in range(0, self.image.shape[1]):
57 | f.write("%d " %self.image[i,j])
58 | f.write("\n")
59 | f.close()
60 |
61 | @property
62 | def displayImage(self):
63 | """
64 | Display the image on a window
65 | Press any key to exit
66 | """
67 | cv2.imshow('Displayed Image', self.image)
68 | cv2.waitKey(0)
69 | cv2.destroyAllWindows()
70 |
71 | def saveImage(self, title, extension):
72 | """
73 | Save as a specific image format (bmp, png, or jpeg)
74 | """
75 | cv2.imwrite("{}.{}".format(title,extension), self.image)
76 |
77 | def morph_open(self, image, kernel):
78 | """
79 | Remove all white noises or speckles outside images
80 | Need to tune the kernel size
81 | Instruction:
82 | unit01 = Toolbox(image);
83 | kernel = np.ones( (9,9), np.uint8 );
84 | morph = unit01.morph_open(input_image, kernel);
85 | """
86 | bin_open = cv2.morphologyEx(self.image, cv2.MORPH_OPEN, kernel)
87 | return bin_open
88 |
89 | def morph_close(self, image, kernel):
90 | """
91 | Remove all black noises or speckles inside images
92 | Need to tune the kernel size
93 | Instruction:
94 | unit01 = Toolbox(image);
95 | kernel = np.ones( (11,11)_, np.uint8 );
96 | morph = unit01.morph_close(input_image, kernel);
97 | """
98 | bin_close = cv2.morphologyEx(self.image, cv2.MORPH_CLOSE, kernel)
99 | return bin_close
100 |
101 | class DEFG(ABC):
102 | """
103 | DEFG: Dilation or Erosion of Fore Ground
104 | An abstract base class that enables image erosion or dilation PRE trimap
105 | Attribute: binary image
106 | Method: scaling with two inputs: image and iterations
107 | """
108 | def __init__(self, image):
109 | self.image = image;
110 |
111 | @abstractmethod
112 | def scaling(self, image, iteration):
113 | pass
114 |
115 | class Erosion(DEFG):
116 | def __init__(self, image):
117 | self.image = image
118 |
119 | def scaling(self, image, erosion):
120 | erosion = int(erosion)
121 | kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
122 | image = cv2.erode(image, kernel, iterations=erosion) ## The number of erosions
123 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
124 | # Error-handler to prevent entire foreground annihilation
125 | if cv2.countNonZero(image) == 0:
126 | print("ERROR: foreground has been entirely eroded")
127 | sys.exit()
128 | return image
129 |
130 | class Dilation(DEFG):
131 | def __init__(self, image):
132 | self.image = image
133 |
134 | def scaling(self, image, dilation):
135 | dilation = int(dilation)
136 | kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
137 |
138 | ## The number of dilations
139 | image = cv2.dilate(image, kernel, iterations=dilation)
140 |
141 | ## Any gray-clored pixel becomes white (smoothing)
142 | image = np.where(image > 0, 255, image)
143 | # Error-handler to prevent entire foreground domination
144 | height = image.shape[0]
145 | width = image.shape[1]
146 | totalpixels = height*width
147 | n_white_pix = np.sum(image == 255)
148 |
149 | if n_white_pix == totalpixels:
150 | print("ERROR: foreground has been entirely expanded")
151 | sys.exit()
152 | return image
153 |
154 | def trimap(image, name, size, number, DEFG=None, num_iter=0):
155 | """
156 | This function creates a trimap based on simple dilation algorithm
157 | Inputs [4]: a binary image (black & white only), name of the image, dilation pixels
158 | the last argument is optional; i.e., how many iterations will the image get eroded
159 | Output : a trimap
160 | """
161 | checkImage(image)
162 |
163 | row = image.shape[0]
164 | col = image.shape[1]
165 | pixels = 2*size + 1 ## Double and plus 1 to have an odd-sized kernel
166 | kernel = np.ones((pixels,pixels),np.uint8) ## How many pixel extension do I get
167 | if DEFG==None:
168 | pass
169 | elif (DEFG == Dilation):
170 | expand = Dilation(image)
171 | image = expand.scaling(image, num_iter)
172 | elif (DEFG == Erosion):
173 | shrink = Erosion(image)
174 | image = shrink.scaling(image, num_iter)
175 | else:
176 | printf("ERROR: Unspecified foreground dilation or erosion method")
177 | sys.exit()
178 |
179 | dilation = cv2.dilate(image, kernel, iterations = 1)
180 |
181 | dilation = np.where(dilation == 255, 127, dilation)## WHITE to GRAY
182 | remake = np.where(dilation != 127, 0, dilation) ## Smoothing
183 | remake = np.where(image > 127, 200, dilation) ## mark the tumor inside GRAY
184 |
185 | remake = np.where(remake < 127, 0, remake) ## Embelishment
186 | remake = np.where(remake > 200, 0, remake) ## Embelishment
187 | remake = np.where(remake == 200, 255, remake) ## GRAY to WHITE
188 |
189 | #############################################
190 | # Ensures only three pixel values available #
191 | # TODO: Optimization with Cython #
192 | #############################################
193 | for i in range(0,row):
194 | for j in range (0,col):
195 | if (remake[i,j] != 0 and remake[i,j] != 255):
196 | remake[i,j] = 127
197 |
198 | path = "./images/results/" ## Change the directory
199 | new_name = '{}px_'.format(size) + name + '_{}.png'.format(number)
200 | cv2.imwrite(os.path.join(path , new_name) , remake)
201 |
202 | #############################################
203 | ### TESTING SECTION ###
204 | #############################################
205 | if __name__ == '__main__':
206 | path = "./images/test_images/test_image_9.png"
207 | image = extractImage(path)
208 | size = 20
209 | number = path[-5]
210 | title = "test_image"
211 | # trimap(image, title, size, number, DEFG=None)
212 | trimap(image, title, size, number, DEFG=None)
213 |
--------------------------------------------------------------------------------
/trimap_module.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import cv2, os, sys
3 | import numpy as np
4 |
5 | def extractImage(path):
6 | # error handller if the intended path is not found
7 | image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
8 | return image
9 |
10 | def checkImage(image):
11 | """
12 | Args:
13 | image: input image to be checked
14 | Returns:
15 | binary image
16 | Raises:
17 | RGB image, grayscale image, all-black, and all-white image
18 |
19 | """
20 | if len(image.shape) > 2:
21 | print("ERROR: non-binary image (RGB)"); sys.exit();
22 |
23 | smallest = image.min(axis=0).min(axis=0) # lowest pixel value: 0 (black)
24 | largest = image.max(axis=0).max(axis=0) # highest pixel value: 1 (white)
25 |
26 | if (smallest == 0 and largest == 0):
27 | print("ERROR: non-binary image (all black)"); sys.exit()
28 | elif (smallest == 255 and largest == 255):
29 | print("ERROR: non-binary image (all white)"); sys.exit()
30 | elif (smallest > 0 or largest < 255 ):
31 | print("ERROR: non-binary image (grayscale)"); sys.exit()
32 | else:
33 | return True
34 |
35 | class Toolbox:
36 | def __init__(self, image):
37 | self.image = image
38 |
39 | @property
40 | def printImage(self):
41 | """
42 | Print image into a file for checking purpose
43 | unitTest = Toolbox(image);
44 | unitTest.printImage(image);
45 | """
46 | f = open("image_results.dat", "w+")
47 | for i in range(0, self.image.shape[0]):
48 | for j in range(0, self.image.shape[1]):
49 | f.write("%d " %self.image[i,j])
50 | f.write("\n")
51 | f.close()
52 |
53 | @property
54 | def displayImage(self):
55 | """
56 | Display the image on a window
57 | Press any key to exit
58 | """
59 | cv2.imshow('Displayed Image', self.image)
60 | cv2.waitKey(0)
61 | cv2.destroyAllWindows()
62 |
63 | def saveImage(self, title, extension):
64 | """
65 | Save as a specific image format (bmp, png, or jpeg)
66 | """
67 | cv2.imwrite("{}.{}".format(title,extension), self.image)
68 |
69 | def morph_open(self, image, kernel):
70 | """
71 | Remove all white noises or speckles outside images
72 | Need to tune the kernel size
73 | Instruction:
74 | unit01 = Toolbox(image);
75 | kernel = np.ones( (9,9), np.uint8 );
76 | morph = unit01.morph_open(input_image, kernel);
77 | """
78 | bin_open = cv2.morphologyEx(self.image, cv2.MORPH_OPEN, kernel)
79 | return bin_open
80 |
81 | def morph_close(self, image, kernel):
82 | """
83 | Remove all black noises or speckles inside images
84 | Need to tune the kernel size
85 | Instruction:
86 | unit01 = Toolbox(image);
87 | kernel = np.ones( (11,11)_, np.uint8 );
88 | morph = unit01.morph_close(input_image, kernel);
89 | """
90 | bin_close = cv2.morphologyEx(self.image, cv2.MORPH_CLOSE, kernel)
91 | return bin_close
92 |
93 |
94 | def trimap(image, name, size, number, erosion=False):
95 | """
96 | This function creates a trimap based on simple dilation algorithm
97 | Inputs [4]: a binary image (black & white only), name of the image, dilation pixels
98 | the last argument is optional; i.e., how many iterations will the image get eroded
99 | Output : a trimap
100 | """
101 | checkImage(image)
102 | row = image.shape[0]
103 | col = image.shape[1]
104 | pixels = 2*size + 1 ## Double and plus 1 to have an odd-sized kernel
105 | kernel = np.ones((pixels,pixels),np.uint8) ## Pixel of extension I get
106 |
107 | if erosion is not False:
108 | erosion = int(erosion)
109 | erosion_kernel = np.ones((3,3), np.uint8) ## Design an odd-sized erosion kernel
110 | image = cv2.erode(image, erosion_kernel, iterations=erosion) ## How many erosion do you expect
111 | image = np.where(image > 0, 255, image) ## Any gray-clored pixel becomes white (smoothing)
112 | # Error-handler to prevent entire foreground annihilation
113 | if cv2.countNonZero(image) == 0:
114 | print("ERROR: foreground has been entirely eroded")
115 | sys.exit()
116 |
117 | dilation = cv2.dilate(image, kernel, iterations = 1)
118 |
119 | dilation = np.where(dilation == 255, 127, dilation) ## WHITE to GRAY
120 | remake = np.where(dilation != 127, 0, dilation) ## Smoothing
121 | remake = np.where(image > 127, 200, dilation) ## mark the tumor inside GRAY
122 |
123 | remake = np.where(remake < 127, 0, remake) ## Embelishment
124 | remake = np.where(remake > 200, 0, remake) ## Embelishment
125 | remake = np.where(remake == 200, 255, remake) ## GRAY to WHITE
126 |
127 | #############################################
128 | # Ensures only three pixel values available #
129 | # TODO: Optimization with Cython #
130 | #############################################
131 | for i in range(0,row):
132 | for j in range (0,col):
133 | if (remake[i,j] != 0 and remake[i,j] != 255):
134 | remake[i,j] = 127
135 |
136 | path = "./images/results/" ## Change the directory
137 | new_name = '{}px_'.format(size) + name + '_{}.png'.format(number)
138 | cv2.imwrite(os.path.join(path, new_name) , remake)
139 |
140 |
141 | #############################################
142 | ### TESTING SECTION ###
143 | #############################################
144 | if __name__ == '__main__':
145 | path = "./images/test_images/test_image_11.png"
146 | image = extractImage(path)
147 |
148 | size = 10
149 | number = path[-5]
150 | title = "test_image"
151 |
152 | unit01 = Toolbox(image);
153 | kernel1 = np.ones( (11,11), np.uint8 )
154 | unit01.displayImage
155 |
156 | opening = unit01.morph_close(image,kernel1)
157 | trimap(opening, title, size, number, erosion=False)
158 | unit02 = Toolbox(opening)
159 | unit02.displayImage
160 |
161 | ########################################################
162 | ## Default instruction (no binary opening or closing ##
163 | ## trimap(image, title, size, number, erosion=False); ##
164 | ########################################################
165 |
--------------------------------------------------------------------------------