From 036779f9455f5db93595859e70a2e5b8d0d86680 Mon Sep 17 00:00:00 2001 From: Evening Date: Fri, 5 Aug 2022 21:35:07 +0800 Subject: [PATCH 1/2] Update sphinx project version --- docs/.buildinfo | 2 +- docs/_static/documentation_options.js | 2 +- docs/acknowledgements.html | 2 +- docs/batch_processing.html | 2 +- docs/binning.html | 2 +- docs/changelog.html | 2 +- docs/direction.html | 2 +- docs/features.html | 2 +- docs/genindex.html | 2 +- docs/glcm_cross.html | 2 +- docs/index.html | 2 +- docs/nan_handling.html | 2 +- docs/radius_step_size.html | 2 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- sphinx/build/doctrees/environment.pickle | Bin 29653 -> 29218 bytes sphinx/build/html/.buildinfo | 2 +- sphinx/build/html/_sources/changelog.md.txt | 2 +- .../html/_static/documentation_options.js | 2 +- sphinx/build/html/acknowledgements.html | 2 +- sphinx/build/html/batch_processing.html | 2 +- sphinx/build/html/binning.html | 2 +- sphinx/build/html/changelog.html | 2 +- sphinx/build/html/direction.html | 2 +- sphinx/build/html/features.html | 2 +- sphinx/build/html/genindex.html | 2 +- sphinx/build/html/glcm_cross.html | 2 +- sphinx/build/html/index.html | 2 +- sphinx/build/html/nan_handling.html | 2 +- sphinx/build/html/radius_step_size.html | 2 +- sphinx/build/html/search.html | 2 +- sphinx/build/html/searchindex.js | 2 +- sphinx/src/conf.py | 8 ++------ 33 files changed, 33 insertions(+), 37 deletions(-) diff --git a/docs/.buildinfo b/docs/.buildinfo index 8fa9e15..b7d7ad5 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e270df930c3d2becdea867780f1cc458 +config: d62d9254bcb54a76dd72c88917151fd7 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 17fd07e..26be704 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.1.9', + VERSION: '0.1.10', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/acknowledgements.html b/docs/acknowledgements.html index 19974dd..81601a1 100644 --- a/docs/acknowledgements.html +++ b/docs/acknowledgements.html @@ -8,7 +8,7 @@ - Acknowledgements — glcm_cupy 0.1.9 documentation + Acknowledgements — glcm_cupy 0.1.10 documentation diff --git a/docs/batch_processing.html b/docs/batch_processing.html index 86a46ee..c8fb9e9 100644 --- a/docs/batch_processing.html +++ b/docs/batch_processing.html @@ -8,7 +8,7 @@ - Batch Processing — glcm_cupy 0.1.9 documentation + Batch Processing — glcm_cupy 0.1.10 documentation diff --git a/docs/binning.html b/docs/binning.html index 7db34f5..0067add 100644 --- a/docs/binning.html +++ b/docs/binning.html @@ -8,7 +8,7 @@ - Binning — glcm_cupy 0.1.9 documentation + Binning — glcm_cupy 0.1.10 documentation diff --git a/docs/changelog.html b/docs/changelog.html index d1d295c..6463e90 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -8,7 +8,7 @@ - Changelog — glcm_cupy 0.1.9 documentation + Changelog — glcm_cupy 0.1.10 documentation diff --git a/docs/direction.html b/docs/direction.html index 8d1905e..d7c2077 100644 --- a/docs/direction.html +++ b/docs/direction.html @@ -8,7 +8,7 @@ - Direction — glcm_cupy 0.1.9 documentation + Direction — glcm_cupy 0.1.10 documentation diff --git a/docs/features.html b/docs/features.html index 0b17c21..927c583 100644 --- a/docs/features.html +++ b/docs/features.html @@ -8,7 +8,7 @@ - GLCM Feature Indexing — glcm_cupy 0.1.9 documentation + GLCM Feature Indexing — glcm_cupy 0.1.10 documentation diff --git a/docs/genindex.html b/docs/genindex.html index b6c0f15..d841560 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -8,7 +8,7 @@ - Index — glcm_cupy 0.1.9 documentation + Index — glcm_cupy 0.1.10 documentation diff --git a/docs/glcm_cross.html b/docs/glcm_cross.html index d011f3a..65d4cc0 100644 --- a/docs/glcm_cross.html +++ b/docs/glcm_cross.html @@ -8,7 +8,7 @@ - Cross GLCM — glcm_cupy 0.1.9 documentation + Cross GLCM — glcm_cupy 0.1.10 documentation diff --git a/docs/index.html b/docs/index.html index a5b3eaa..bce6d2d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,7 +8,7 @@ - GLCM Implemented in CuPy — glcm_cupy 0.1.9 documentation + GLCM Implemented in CuPy — glcm_cupy 0.1.10 documentation diff --git a/docs/nan_handling.html b/docs/nan_handling.html index b1c7214..f5d7321 100644 --- a/docs/nan_handling.html +++ b/docs/nan_handling.html @@ -8,7 +8,7 @@ - NaN Handling — glcm_cupy 0.1.9 documentation + NaN Handling — glcm_cupy 0.1.10 documentation diff --git a/docs/radius_step_size.html b/docs/radius_step_size.html index 811eb2f..12662c3 100644 --- a/docs/radius_step_size.html +++ b/docs/radius_step_size.html @@ -8,7 +8,7 @@ - Radius & Step Size — glcm_cupy 0.1.9 documentation + Radius & Step Size — glcm_cupy 0.1.10 documentation diff --git a/docs/search.html b/docs/search.html index 4190fb1..2cf440f 100644 --- a/docs/search.html +++ b/docs/search.html @@ -8,7 +8,7 @@ - Search — glcm_cupy 0.1.9 documentation + Search — glcm_cupy 0.1.10 documentation diff --git a/docs/searchindex.js b/docs/searchindex.js index 311945c..6fca1f6 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["acknowledgements", "batch_processing", "binning", "changelog", "direction", "features", "glcm_cross", "index", "nan_handling", "radius_step_size"], "filenames": ["acknowledgements.md", "batch_processing.md", "binning.md", "changelog.md", "direction.md", "features.md", "glcm_cross.md", "index.md", "nan_handling.md", "radius_step_size.md"], "titles": ["Acknowledgements", "Batch Processing", "Binning", "Changelog", "Direction", "GLCM Feature Indexing", "Cross GLCM", "GLCM Implemented in CuPy", "NaN Handling", "Radius & Step Size"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 9], "extend": 0, "my": 0, "gratitud": 0, "follow": [0, 5, 6], "peopl": 0, "benjamin": 0, "goh": 0, "spur": [], "me": 7, "do": [], "thi": [0, 1, 3, 4, 7, 8, 9], "after": [0, 6], "hi": 0, "implement": [0, 3], "numba": 0, "dr": 0, "ji": 0, "jon": 0, "sit": 0, "host": 0, "project": 0, "push": [], "need": [0, 1, 2, 7], "wang": 0, "jifei": 0, "provid": 0, "bin": [0, 7], "idea": 0, "note": 5, "It": [1, 4, 9], "": [0, 1, 2, 3, 5, 9], "faster": [1, 3], "than": 1, "loop": 1, "For": [0, 1, 7], "multipl": 1, "imag": [0, 1, 2, 4, 5, 6, 7, 8, 9], "same": [0, 1, 3, 7], "size": [1, 2, 7], "you": [1, 4, 5, 6, 7, 8, 9], "mai": [1, 6, 8, 9], "run": [1, 2, 4, 5, 6, 7, 9], "them": 1, "concurr": 1, "slightli": 1, "glcm": [0, 1, 2, 3, 4, 8, 9], "start": [0, 1], "next": 1, "while": 1, "current": [0, 1], "still": 1, "being": 1, "from": [0, 1, 2, 4, 5, 6, 7, 9], "glcm_cupi": [1, 2, 4, 5, 6, 7, 9], "import": [0, 1, 2, 4, 5, 6, 7, 9], "cv2": [1, 5, 7], "ar0": [1, 7], "imread": [1, 5, 7], "image_0": 1, "jpg": [1, 2, 4, 5, 6, 7, 9], "ar1": [1, 7], "image_1": 1, "shape": [1, 6, 7, 9], "1080": [1, 6, 7], "1920": [1, 6, 7], "3": [1, 5, 6, 7, 8, 9], "why": 1, "g": [1, 2, 4, 5, 6, 7, 9], "np": [1, 2, 3, 4, 6, 7, 8, 9], "stack": [1, 7], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9], "2": [1, 2, 5, 6, 8], "1074": [1, 7], "1914": [1, 7], "7": [1, 7, 8], "g0": [1, 7], "g1": [1, 7], "0": [1, 2, 3, 5, 6, 7, 8, 9], "1": [1, 5, 6, 8, 9], "The": [0, 1, 2, 6, 9], "dimens": [1, 3, 6, 7], "here": 1, "height": 1, "width": 1, "channel": [1, 5, 6], "featur": [0, 1, 3, 6, 7, 8], "so": [1, 6, 7], "retriev": [1, 5], "1st": 1, "doe": [1, 5], "benefit": [], "speed": 0, "howev": [0, 1, 6], "simpler": 1, "syntax": [1, 5], "behavior": 1, "ix_combo": [1, 6], "specifi": [1, 4, 6], "chang": [1, 7], "If": [1, 9], "blank": 1, "ll": [1, 9], "gener": [1, 6, 7], "all": [1, 6], "combin": 1, "each": [1, 6, 9], "numpi": [2, 3, 4, 6, 9], "pil": [2, 4, 6, 9], "asarrai": [2, 4, 6, 9], "open": [2, 4, 6, 9], "bin_from": [2, 3], "256": 2, "bin_to": 2, "16": 2, "To": [2, 5, 6, 7], "reduc": [2, 3, 5], "taken": [2, 6], "we": [2, 5, 8, 9], "shrink": 2, "limit": 2, "maximum": 2, "valu": [2, 3, 8, 9], "input": [2, 3], "e": [2, 7], "an": [2, 6, 7], "255": 2, "requir": 2, "15": [2, 3], "drastic": 2, "argument": 2, "thu": [0, 6, 8], "As": 2, "includ": [2, 9], "max": 2, "us": [2, 3, 4, 5, 6, 7, 8], "complex": 2, "o": 2, "n": [2, 5], "4": [2, 4, 8], "try": 2, "test": [2, 3], "purpos": 2, "increas": 2, "when": [2, 6, 8], "readi": 2, "higher": 2, "direct": [2, 7], "merg": 3, "pr": 3, "18": 3, "add": [3, 4], "support": [3, 7], "cupi": 3, "option": 3, "rapid": [3, 7], "cucim": [3, 7], "25": 3, "integr": 3, "check": 3, "stabil": 3, "output": 3, "27": 3, "select": [3, 7], "optim": 3, "out": 3, "unnecessari": 3, "stage": 3, "29": 3, "fix": 3, "issu": [0, 3, 5], "ndarrai": 3, "incompat": 3, "tqdm": 3, "30": 3, "batch": [3, 7], "process": [0, 3, 7], "vanilla": 3, "glcmcross": [3, 6], "doesn": 3, "t": [3, 6], "perform": [3, 4], "32": 3, "author": 3, "julio": 3, "faracco": 3, "dissimilar": [3, 5], "35": 3, "adjust": 3, "coerc": 3, "duplic": 3, "code": [3, 8], "handl": [3, 7], "arrai": 3, "condition": 3, "36": 3, "nan": [3, 7], "ignor": [3, 8], "contribut": [0, 3], "resolv": 3, "bad": 3, "ndim": 3, "rais": 3, "improv": 3, "messag": 3, "14": 3, "11": [3, 7], "allow": 3, "silenc": 3, "13": 3, "normalize_featur": 3, "normalized_featur": 3, "glcm_cross": [3, 6], "unexpect": 3, "arg": 3, "order": [3, 5, 6], "behaviour": 3, "remov": 3, "test__from_window": 3, "redund": 3, "test_from_2d_imag": 3, "fail": [3, 9], "due": 3, "miss": 3, "3rd": [3, 6], "test_image_tiff": 3, "refer": 3, "_binner": 3, "binner": 3, "util": 3, "cross": [3, 7], "overflow": 3, "make": 3, "float32": 3, "drop": 3, "depend": 3, "j": [3, 4, 5, 6], "variabl": 3, "alwai": 3, "south_west": 4, "south": 4, "recommend": 7, "referenc": [], "textur": [5, 7], "A": [5, 7], "tutori": [5, 7], "v": [5, 7], "march": [5, 7], "2017": [5, 7], "knowledg": [], "gap": [], "algorithm": 4, "kernel": [3, 4], "popul": [4, 6, 8], "cost": 4, "neglig": 4, "simpli": 4, "transpos": 4, "can": [4, 5, 6], "east": 4, "south_east": 4, "west": 4, "other": [], "unavail": [], "cover": [], "time": [5, 9], "specif": 5, "mean": [5, 8], "unselect": 5, "return": 5, "zero": 5, "5": [5, 8], "normal": 5, "correl": [5, 7], "determin": 5, "contrast": [5, 6, 7], "print": 5, "definit": 5, "In": [4, 5, 6], "total": 5, "have": [5, 8, 9], "6": [5, 6, 7, 8], "text": 5, "homogen": 5, "sum_": 5, "frac": 5, "p_": 5, "angular": 5, "second": 5, "moment": 5, "asm": 5, "mu": 5, "varianc": 5, "sigma": 5, "mu_i": 5, "mu_j": 5, "sqrt": 5, "sigma_i": 5, "sigma_j": 5, "left": [5, 7], "lvert": 5, "right": 5, "rvert": 5, "feel": 5, "free": 5, "suggest": 5, "more": 5, "github": 5, "page": [5, 7], "separ": 6, "yield": [0, 6], "statist": 6, "relationship": 6, "between": [6, 9], "like": [3, 6, 7], "last": [6, 7], "consid": [6, 7, 8], "reus": [6, 7], "instanc": 6, "properti": 6, "onli": 6, "indic": 6, "skip": [6, 8], "By": 6, "none": 6, "possibl": 6, "itertool": 6, "rang": 6, "caveat": [], "indirectli": 6, "radiu": 7, "step": 7, "python": [0, 7], "first": 7, "instal": 7, "pip": 7, "Then": 7, "version": [7, 8], "correspond": 7, "your": [7, 8], "cuda": 7, "conda": 7, "forg": 7, "work": 7, "c": 7, "cudatoolkit": 7, "your_cuda_vers": 7, "manual": 7, "see": [5, 7], "automat": 7, "enabl": 7, "guid": [0, 7], "get": 7, "mani": [0, 7], "onc": 7, "ar2": 7, "g2": 7, "view": 7, "articl": 7, "side": 7, "bar": 7, "learn": 7, "acknowledg": 7, "log": 7, "new": 8, "10": 8, "ad": 8, "cp": 8, "thei": [0, 8], "creat": 8, "partial": 8, "take": 8, "exampl": [4, 8], "x": 8, "window": [8, 9], "block": 8, "pair": 8, "filter": 8, "9": 8, "8": 8, "probabl": [3, 8], "cell": 8, "abov": 8, "border": 8, "step_siz": 9, "defin": 9, "diamet": 9, "center": 9, "pixel": 9, "distanc": 9, "diagon": 9, "treat": 9, "euclidean": 9, "too": 9, "small": 9, "reject": 9, "result": 9, "ahead": 9, "glcm_shape": 9, "shape_aft": 9, "ha": 9, "ani": 9, "know": 9, "signatur": 9, "helper": 9, "function": 9, "def": 9, "im_shap": 9, "tupl": 9, "int": 9, "list": 3, "short": [], "item": [], "should": [], "displai": [], "horizont": [], "full": 4, "stem": 0, "cv": 0, "research": 0, "classifi": 0, "tree": 0, "speci": 0, "singapor": 0, "multispectr": 0, "drone": 0, "data": 0, "field": 0, "realiz": 0, "highli": 0, "were": 0, "subpar": 0, "autom": 0, "mainli": 0, "lack": 0, "wa": [0, 3], "born": 0, "tackl": 0, "41": 3, "where": 3, "na": 3, "replac": 3, "incorrectli": 3, "set": 3, "sum": 3, "instead": 3, "nansum": 3, "42": 3, "earli": 3, "exit": 3, "p": 3, "typehint": 3, "flexibl": 3, "enough": 3, "migrat": 3, "type": 3, "sequenc": 3, "thread": 3}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "batch": 1, "process": 1, "glcmcross": 1, "bin": 2, "caution": [], "time": 2, "scale": 2, "recommend": 2, "changelog": 3, "1": 3, "10": 3, "9": 3, "8": 3, "7": 3, "6": 3, "direct": 4, "bi": 4, "direction": 4, "glcm": [5, 6, 7], "featur": 5, "index": 5, "select": [5, 6], "get": 5, "theori": 5, "cross": 6, "usag": [6, 7], "retriev": 6, "combin": 6, "default": 6, "implement": 7, "cupi": 7, "quick": 7, "start": 7, "read": 7, "more": 7, "develop": 7, "nan": 8, "handl": 8, "pad": 8, "radiu": 9, "step": 9, "size": 9, "check": 9, "suitabl": 9, "ureca": 0, "motiv": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["acknowledgements", "batch_processing", "binning", "changelog", "direction", "features", "glcm_cross", "index", "nan_handling", "radius_step_size"], "filenames": ["acknowledgements.md", "batch_processing.md", "binning.md", "changelog.md", "direction.md", "features.md", "glcm_cross.md", "index.md", "nan_handling.md", "radius_step_size.md"], "titles": ["Acknowledgements", "Batch Processing", "Binning", "Changelog", "Direction", "GLCM Feature Indexing", "Cross GLCM", "GLCM Implemented in CuPy", "NaN Handling", "Radius & Step Size"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 9], "extend": 0, "my": 0, "gratitud": 0, "follow": [0, 5, 6], "peopl": 0, "contribut": [0, 3], "benjamin": 0, "goh": 0, "project": 0, "after": [0, 6], "hi": 0, "implement": [0, 3], "numba": 0, "dr": 0, "ji": 0, "jon": 0, "sit": 0, "host": 0, "guid": [0, 7], "start": [0, 1], "thi": [0, 1, 3, 4, 7, 8, 9], "wang": 0, "jifei": 0, "For": [0, 1, 7], "provid": 0, "idea": 0, "glcm": [0, 1, 2, 3, 4, 8, 9], "bin": [0, 7], "The": [0, 1, 2, 6, 9], "": [0, 1, 2, 3, 5, 9], "need": [0, 1, 2, 7], "stem": 0, "from": [0, 1, 2, 4, 5, 6, 7, 9], "cv": 0, "research": 0, "classifi": 0, "tree": 0, "speci": 0, "singapor": 0, "multispectr": 0, "drone": 0, "data": 0, "mani": [0, 7], "same": [0, 1, 3, 7], "field": 0, "realiz": 0, "process": [0, 3, 7], "imag": [0, 1, 2, 4, 5, 6, 7, 8, 9], "yield": [0, 6], "highli": 0, "import": [0, 1, 2, 4, 5, 6, 7, 9], "featur": [0, 1, 3, 6, 7, 8], "howev": [0, 1, 6], "current": [0, 1], "python": [0, 7], "were": 0, "subpar": 0, "autom": 0, "thei": [0, 8], "mainli": 0, "lack": 0, "speed": 0, "thu": [0, 6, 8], "wa": [0, 3], "born": 0, "tackl": 0, "issu": [0, 3, 5], "It": [1, 4, 9], "faster": [1, 3], "than": 1, "loop": 1, "multipl": 1, "size": [1, 2, 7], "you": [1, 4, 5, 6, 7, 8, 9], "mai": [1, 6, 8, 9], "run": [1, 2, 4, 5, 6, 7, 9], "them": 1, "concurr": 1, "slightli": 1, "next": 1, "while": 1, "still": 1, "being": 1, "glcm_cupi": [1, 2, 4, 5, 6, 7, 9], "cv2": [1, 5, 7], "ar0": [1, 7], "imread": [1, 5, 7], "image_0": 1, "jpg": [1, 2, 4, 5, 6, 7, 9], "ar1": [1, 7], "image_1": 1, "shape": [1, 6, 7, 9], "1080": [1, 6, 7], "1920": [1, 6, 7], "3": [1, 5, 6, 7, 8, 9], "why": 1, "g": [1, 2, 4, 5, 6, 7, 9], "np": [1, 2, 3, 4, 6, 7, 8, 9], "stack": [1, 7], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9], "2": [1, 2, 5, 6, 8], "1074": [1, 7], "1914": [1, 7], "7": [1, 7, 8], "g0": [1, 7], "g1": [1, 7], "0": [1, 2, 3, 5, 6, 7, 8, 9], "1": [1, 5, 6, 8, 9], "dimens": [1, 3, 6, 7], "here": 1, "height": 1, "width": 1, "channel": [1, 5, 6], "so": [1, 6, 7], "retriev": [1, 5], "1st": 1, "simpler": 1, "syntax": [1, 5], "behavior": 1, "ix_combo": [1, 6], "specifi": [1, 4, 6], "doe": [1, 5], "chang": [1, 7], "If": [1, 9], "blank": 1, "ll": [1, 9], "gener": [1, 6, 7], "all": [1, 6], "combin": 1, "each": [1, 6, 9], "To": [2, 5, 6, 7], "reduc": [2, 3, 5], "taken": [2, 6], "we": [2, 5, 8, 9], "shrink": 2, "limit": 2, "maximum": 2, "valu": [2, 3, 8, 9], "input": [2, 3], "e": [2, 7], "an": [2, 6, 7], "max": 2, "255": 2, "requir": 2, "256": 2, "15": [2, 3], "drastic": 2, "16": 2, "argument": 2, "us": [2, 3, 4, 5, 6, 7, 8], "bin_from": [2, 3], "bin_to": 2, "numpi": [2, 3, 4, 6, 9], "pil": [2, 4, 6, 9], "asarrai": [2, 4, 6, 9], "open": [2, 4, 6, 9], "As": 2, "includ": [2, 9], "complex": 2, "o": 2, "n": [2, 5], "4": [2, 4, 8], "try": 2, "test": [2, 3], "purpos": 2, "increas": 2, "when": [2, 6, 8], "readi": 2, "higher": 2, "direct": [2, 7], "merg": 3, "pr": 3, "18": 3, "add": [3, 4], "support": [3, 7], "cupi": 3, "option": 3, "rapid": [3, 7], "cucim": [3, 7], "25": 3, "integr": 3, "check": 3, "stabil": 3, "output": 3, "27": 3, "select": [3, 7], "optim": 3, "out": 3, "unnecessari": 3, "stage": 3, "29": 3, "fix": 3, "ndarrai": 3, "incompat": 3, "tqdm": 3, "30": 3, "batch": [3, 7], "vanilla": 3, "glcmcross": [3, 6], "doesn": 3, "t": [3, 6], "perform": [3, 4], "32": 3, "author": 3, "julio": 3, "faracco": 3, "dissimilar": [3, 5], "35": 3, "adjust": 3, "coerc": 3, "duplic": 3, "code": [3, 8], "handl": [3, 7], "arrai": 3, "condition": 3, "36": 3, "nan": [3, 7], "ignor": [3, 8], "resolv": 3, "bad": 3, "ndim": 3, "rais": 3, "improv": 3, "messag": 3, "14": 3, "11": [3, 7], "allow": 3, "silenc": 3, "13": 3, "normalize_featur": 3, "normalized_featur": 3, "glcm_cross": [3, 6], "unexpect": 3, "arg": 3, "order": [3, 5, 6], "behaviour": 3, "remov": 3, "test__from_window": 3, "redund": 3, "test_from_2d_imag": 3, "fail": [3, 9], "due": 3, "miss": 3, "3rd": [3, 6], "test_image_tiff": 3, "refer": 3, "_binner": 3, "binner": 3, "util": 3, "41": 3, "where": 3, "na": 3, "replac": 3, "incorrectli": 3, "set": 3, "sum": 3, "instead": 3, "nansum": 3, "42": 3, "kernel": [3, 4], "thread": 3, "earli": 3, "exit": 3, "probabl": [3, 8], "p": 3, "list": 3, "like": [3, 6, 7], "typehint": 3, "flexibl": 3, "enough": 3, "migrat": 3, "type": 3, "sequenc": 3, "cross": [3, 7], "overflow": 3, "make": 3, "float32": 3, "drop": 3, "depend": 3, "j": [3, 4, 5, 6], "variabl": 3, "alwai": 3, "can": [4, 5, 6], "east": 4, "south": 4, "south_east": 4, "west": 4, "south_west": 4, "In": [4, 5, 6], "full": 4, "exampl": [4, 8], "algorithm": 4, "popul": [4, 6, 8], "cost": 4, "neglig": 4, "simpli": 4, "transpos": 4, "time": [5, 9], "specif": 5, "unselect": 5, "return": 5, "zero": 5, "5": [5, 8], "normal": 5, "correl": [5, 7], "note": 5, "determin": 5, "contrast": [5, 6, 7], "print": 5, "see": [5, 7], "definit": 5, "textur": [5, 7], "A": [5, 7], "tutori": [5, 7], "v": [5, 7], "march": [5, 7], "2017": [5, 7], "total": 5, "have": [5, 8, 9], "6": [5, 6, 7, 8], "text": 5, "homogen": 5, "sum_": 5, "frac": 5, "p_": 5, "angular": 5, "second": 5, "moment": 5, "asm": 5, "mean": [5, 8], "mu": 5, "varianc": 5, "sigma": 5, "mu_i": 5, "mu_j": 5, "sqrt": 5, "sigma_i": 5, "sigma_j": 5, "left": [5, 7], "lvert": 5, "right": 5, "rvert": 5, "feel": 5, "free": 5, "suggest": 5, "more": 5, "github": 5, "page": [5, 7], "separ": 6, "statist": 6, "relationship": 6, "between": [6, 9], "last": [6, 7], "consid": [6, 7, 8], "reus": [6, 7], "instanc": 6, "properti": 6, "onli": 6, "indic": 6, "skip": [6, 8], "By": 6, "none": 6, "possibl": 6, "itertool": 6, "rang": 6, "indirectli": 6, "radiu": 7, "step": 7, "first": 7, "instal": 7, "pip": 7, "Then": 7, "version": [7, 8], "correspond": 7, "your": [7, 8], "cuda": 7, "recommend": 7, "conda": 7, "forg": 7, "work": 7, "me": 7, "c": 7, "cudatoolkit": 7, "your_cuda_vers": 7, "manual": 7, "automat": 7, "enabl": 7, "get": 7, "onc": 7, "ar2": 7, "g2": 7, "view": 7, "articl": 7, "side": 7, "bar": 7, "learn": 7, "acknowledg": 7, "log": 7, "new": 8, "10": 8, "ad": 8, "cp": 8, "creat": 8, "partial": 8, "take": 8, "x": 8, "window": [8, 9], "block": 8, "pair": 8, "filter": 8, "9": 8, "8": 8, "cell": 8, "abov": 8, "border": 8, "step_siz": 9, "defin": 9, "diamet": 9, "center": 9, "pixel": 9, "distanc": 9, "diagon": 9, "treat": 9, "euclidean": 9, "too": 9, "small": 9, "reject": 9, "result": 9, "ahead": 9, "shape_aft": 9, "glcm_shape": 9, "ha": 9, "ani": 9, "know": 9, "signatur": 9, "helper": 9, "function": 9, "def": 9, "im_shap": 9, "tupl": 9, "int": 9}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "ureca": 0, "motiv": 0, "batch": 1, "process": 1, "glcmcross": 1, "bin": 2, "time": 2, "scale": 2, "recommend": 2, "changelog": 3, "1": 3, "10": 3, "9": 3, "8": 3, "7": 3, "6": 3, "direct": 4, "bi": 4, "direction": 4, "glcm": [5, 6, 7], "featur": 5, "index": 5, "select": [5, 6], "get": 5, "theori": 5, "cross": 6, "usag": [6, 7], "retriev": 6, "combin": 6, "default": 6, "implement": 7, "cupi": 7, "quick": 7, "start": 7, "read": 7, "more": 7, "develop": 7, "nan": 8, "handl": 8, "pad": 8, "radiu": 9, "step": 9, "size": 9, "check": 9, "suitabl": 9}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/sphinx/build/doctrees/environment.pickle b/sphinx/build/doctrees/environment.pickle index a9e96941d314b271bd18d9604f75a6d925745a53..6e8d86d2677884bc118340c411226e8fd809e2aa 100644 GIT binary patch literal 29218 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 diff --git a/sphinx/build/html/.buildinfo b/sphinx/build/html/.buildinfo index 8fa9e15..b7d7ad5 100644 --- a/sphinx/build/html/.buildinfo +++ b/sphinx/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e270df930c3d2becdea867780f1cc458 +config: d62d9254bcb54a76dd72c88917151fd7 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/sphinx/build/html/_sources/changelog.md.txt b/sphinx/build/html/_sources/changelog.md.txt index e05687c..2011e67 100644 --- a/sphinx/build/html/_sources/changelog.md.txt +++ b/sphinx/build/html/_sources/changelog.md.txt @@ -44,7 +44,7 @@ - Resolved issue where NA replacement value was incorrectly set to `bin_from` - Resolved issue where NA summing used `.sum` instead of `np.nansum` - [Merged PR 42](https://github.com/Eve-ning/glcm-cupy/pull/42) - - Optimize kernel, allow kernel early exit if Probability `p==0` + - Optimize kernel, allow thread early exit if Probability `p==0` - Fix `List` / `Set` like typehints not flexible enough. Migrate to `typing.Sequence` ## 1.8 diff --git a/sphinx/build/html/_static/documentation_options.js b/sphinx/build/html/_static/documentation_options.js index 17fd07e..26be704 100644 --- a/sphinx/build/html/_static/documentation_options.js +++ b/sphinx/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.1.9', + VERSION: '0.1.10', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/sphinx/build/html/acknowledgements.html b/sphinx/build/html/acknowledgements.html index 19974dd..81601a1 100644 --- a/sphinx/build/html/acknowledgements.html +++ b/sphinx/build/html/acknowledgements.html @@ -8,7 +8,7 @@ - Acknowledgements — glcm_cupy 0.1.9 documentation + Acknowledgements — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/batch_processing.html b/sphinx/build/html/batch_processing.html index 86a46ee..c8fb9e9 100644 --- a/sphinx/build/html/batch_processing.html +++ b/sphinx/build/html/batch_processing.html @@ -8,7 +8,7 @@ - Batch Processing — glcm_cupy 0.1.9 documentation + Batch Processing — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/binning.html b/sphinx/build/html/binning.html index 7db34f5..0067add 100644 --- a/sphinx/build/html/binning.html +++ b/sphinx/build/html/binning.html @@ -8,7 +8,7 @@ - Binning — glcm_cupy 0.1.9 documentation + Binning — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/changelog.html b/sphinx/build/html/changelog.html index d1d295c..6463e90 100644 --- a/sphinx/build/html/changelog.html +++ b/sphinx/build/html/changelog.html @@ -8,7 +8,7 @@ - Changelog — glcm_cupy 0.1.9 documentation + Changelog — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/direction.html b/sphinx/build/html/direction.html index 8d1905e..d7c2077 100644 --- a/sphinx/build/html/direction.html +++ b/sphinx/build/html/direction.html @@ -8,7 +8,7 @@ - Direction — glcm_cupy 0.1.9 documentation + Direction — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/features.html b/sphinx/build/html/features.html index 0b17c21..927c583 100644 --- a/sphinx/build/html/features.html +++ b/sphinx/build/html/features.html @@ -8,7 +8,7 @@ - GLCM Feature Indexing — glcm_cupy 0.1.9 documentation + GLCM Feature Indexing — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/genindex.html b/sphinx/build/html/genindex.html index b6c0f15..d841560 100644 --- a/sphinx/build/html/genindex.html +++ b/sphinx/build/html/genindex.html @@ -8,7 +8,7 @@ - Index — glcm_cupy 0.1.9 documentation + Index — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/glcm_cross.html b/sphinx/build/html/glcm_cross.html index d011f3a..65d4cc0 100644 --- a/sphinx/build/html/glcm_cross.html +++ b/sphinx/build/html/glcm_cross.html @@ -8,7 +8,7 @@ - Cross GLCM — glcm_cupy 0.1.9 documentation + Cross GLCM — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/index.html b/sphinx/build/html/index.html index a5b3eaa..bce6d2d 100644 --- a/sphinx/build/html/index.html +++ b/sphinx/build/html/index.html @@ -8,7 +8,7 @@ - GLCM Implemented in CuPy — glcm_cupy 0.1.9 documentation + GLCM Implemented in CuPy — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/nan_handling.html b/sphinx/build/html/nan_handling.html index b1c7214..f5d7321 100644 --- a/sphinx/build/html/nan_handling.html +++ b/sphinx/build/html/nan_handling.html @@ -8,7 +8,7 @@ - NaN Handling — glcm_cupy 0.1.9 documentation + NaN Handling — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/radius_step_size.html b/sphinx/build/html/radius_step_size.html index 811eb2f..12662c3 100644 --- a/sphinx/build/html/radius_step_size.html +++ b/sphinx/build/html/radius_step_size.html @@ -8,7 +8,7 @@ - Radius & Step Size — glcm_cupy 0.1.9 documentation + Radius & Step Size — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/search.html b/sphinx/build/html/search.html index 4190fb1..2cf440f 100644 --- a/sphinx/build/html/search.html +++ b/sphinx/build/html/search.html @@ -8,7 +8,7 @@ - Search — glcm_cupy 0.1.9 documentation + Search — glcm_cupy 0.1.10 documentation diff --git a/sphinx/build/html/searchindex.js b/sphinx/build/html/searchindex.js index 311945c..6fca1f6 100644 --- a/sphinx/build/html/searchindex.js +++ b/sphinx/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["acknowledgements", "batch_processing", "binning", "changelog", "direction", "features", "glcm_cross", "index", "nan_handling", "radius_step_size"], "filenames": ["acknowledgements.md", "batch_processing.md", "binning.md", "changelog.md", "direction.md", "features.md", "glcm_cross.md", "index.md", "nan_handling.md", "radius_step_size.md"], "titles": ["Acknowledgements", "Batch Processing", "Binning", "Changelog", "Direction", "GLCM Feature Indexing", "Cross GLCM", "GLCM Implemented in CuPy", "NaN Handling", "Radius & Step Size"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 9], "extend": 0, "my": 0, "gratitud": 0, "follow": [0, 5, 6], "peopl": 0, "benjamin": 0, "goh": 0, "spur": [], "me": 7, "do": [], "thi": [0, 1, 3, 4, 7, 8, 9], "after": [0, 6], "hi": 0, "implement": [0, 3], "numba": 0, "dr": 0, "ji": 0, "jon": 0, "sit": 0, "host": 0, "project": 0, "push": [], "need": [0, 1, 2, 7], "wang": 0, "jifei": 0, "provid": 0, "bin": [0, 7], "idea": 0, "note": 5, "It": [1, 4, 9], "": [0, 1, 2, 3, 5, 9], "faster": [1, 3], "than": 1, "loop": 1, "For": [0, 1, 7], "multipl": 1, "imag": [0, 1, 2, 4, 5, 6, 7, 8, 9], "same": [0, 1, 3, 7], "size": [1, 2, 7], "you": [1, 4, 5, 6, 7, 8, 9], "mai": [1, 6, 8, 9], "run": [1, 2, 4, 5, 6, 7, 9], "them": 1, "concurr": 1, "slightli": 1, "glcm": [0, 1, 2, 3, 4, 8, 9], "start": [0, 1], "next": 1, "while": 1, "current": [0, 1], "still": 1, "being": 1, "from": [0, 1, 2, 4, 5, 6, 7, 9], "glcm_cupi": [1, 2, 4, 5, 6, 7, 9], "import": [0, 1, 2, 4, 5, 6, 7, 9], "cv2": [1, 5, 7], "ar0": [1, 7], "imread": [1, 5, 7], "image_0": 1, "jpg": [1, 2, 4, 5, 6, 7, 9], "ar1": [1, 7], "image_1": 1, "shape": [1, 6, 7, 9], "1080": [1, 6, 7], "1920": [1, 6, 7], "3": [1, 5, 6, 7, 8, 9], "why": 1, "g": [1, 2, 4, 5, 6, 7, 9], "np": [1, 2, 3, 4, 6, 7, 8, 9], "stack": [1, 7], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9], "2": [1, 2, 5, 6, 8], "1074": [1, 7], "1914": [1, 7], "7": [1, 7, 8], "g0": [1, 7], "g1": [1, 7], "0": [1, 2, 3, 5, 6, 7, 8, 9], "1": [1, 5, 6, 8, 9], "The": [0, 1, 2, 6, 9], "dimens": [1, 3, 6, 7], "here": 1, "height": 1, "width": 1, "channel": [1, 5, 6], "featur": [0, 1, 3, 6, 7, 8], "so": [1, 6, 7], "retriev": [1, 5], "1st": 1, "doe": [1, 5], "benefit": [], "speed": 0, "howev": [0, 1, 6], "simpler": 1, "syntax": [1, 5], "behavior": 1, "ix_combo": [1, 6], "specifi": [1, 4, 6], "chang": [1, 7], "If": [1, 9], "blank": 1, "ll": [1, 9], "gener": [1, 6, 7], "all": [1, 6], "combin": 1, "each": [1, 6, 9], "numpi": [2, 3, 4, 6, 9], "pil": [2, 4, 6, 9], "asarrai": [2, 4, 6, 9], "open": [2, 4, 6, 9], "bin_from": [2, 3], "256": 2, "bin_to": 2, "16": 2, "To": [2, 5, 6, 7], "reduc": [2, 3, 5], "taken": [2, 6], "we": [2, 5, 8, 9], "shrink": 2, "limit": 2, "maximum": 2, "valu": [2, 3, 8, 9], "input": [2, 3], "e": [2, 7], "an": [2, 6, 7], "255": 2, "requir": 2, "15": [2, 3], "drastic": 2, "argument": 2, "thu": [0, 6, 8], "As": 2, "includ": [2, 9], "max": 2, "us": [2, 3, 4, 5, 6, 7, 8], "complex": 2, "o": 2, "n": [2, 5], "4": [2, 4, 8], "try": 2, "test": [2, 3], "purpos": 2, "increas": 2, "when": [2, 6, 8], "readi": 2, "higher": 2, "direct": [2, 7], "merg": 3, "pr": 3, "18": 3, "add": [3, 4], "support": [3, 7], "cupi": 3, "option": 3, "rapid": [3, 7], "cucim": [3, 7], "25": 3, "integr": 3, "check": 3, "stabil": 3, "output": 3, "27": 3, "select": [3, 7], "optim": 3, "out": 3, "unnecessari": 3, "stage": 3, "29": 3, "fix": 3, "issu": [0, 3, 5], "ndarrai": 3, "incompat": 3, "tqdm": 3, "30": 3, "batch": [3, 7], "process": [0, 3, 7], "vanilla": 3, "glcmcross": [3, 6], "doesn": 3, "t": [3, 6], "perform": [3, 4], "32": 3, "author": 3, "julio": 3, "faracco": 3, "dissimilar": [3, 5], "35": 3, "adjust": 3, "coerc": 3, "duplic": 3, "code": [3, 8], "handl": [3, 7], "arrai": 3, "condition": 3, "36": 3, "nan": [3, 7], "ignor": [3, 8], "contribut": [0, 3], "resolv": 3, "bad": 3, "ndim": 3, "rais": 3, "improv": 3, "messag": 3, "14": 3, "11": [3, 7], "allow": 3, "silenc": 3, "13": 3, "normalize_featur": 3, "normalized_featur": 3, "glcm_cross": [3, 6], "unexpect": 3, "arg": 3, "order": [3, 5, 6], "behaviour": 3, "remov": 3, "test__from_window": 3, "redund": 3, "test_from_2d_imag": 3, "fail": [3, 9], "due": 3, "miss": 3, "3rd": [3, 6], "test_image_tiff": 3, "refer": 3, "_binner": 3, "binner": 3, "util": 3, "cross": [3, 7], "overflow": 3, "make": 3, "float32": 3, "drop": 3, "depend": 3, "j": [3, 4, 5, 6], "variabl": 3, "alwai": 3, "south_west": 4, "south": 4, "recommend": 7, "referenc": [], "textur": [5, 7], "A": [5, 7], "tutori": [5, 7], "v": [5, 7], "march": [5, 7], "2017": [5, 7], "knowledg": [], "gap": [], "algorithm": 4, "kernel": [3, 4], "popul": [4, 6, 8], "cost": 4, "neglig": 4, "simpli": 4, "transpos": 4, "can": [4, 5, 6], "east": 4, "south_east": 4, "west": 4, "other": [], "unavail": [], "cover": [], "time": [5, 9], "specif": 5, "mean": [5, 8], "unselect": 5, "return": 5, "zero": 5, "5": [5, 8], "normal": 5, "correl": [5, 7], "determin": 5, "contrast": [5, 6, 7], "print": 5, "definit": 5, "In": [4, 5, 6], "total": 5, "have": [5, 8, 9], "6": [5, 6, 7, 8], "text": 5, "homogen": 5, "sum_": 5, "frac": 5, "p_": 5, "angular": 5, "second": 5, "moment": 5, "asm": 5, "mu": 5, "varianc": 5, "sigma": 5, "mu_i": 5, "mu_j": 5, "sqrt": 5, "sigma_i": 5, "sigma_j": 5, "left": [5, 7], "lvert": 5, "right": 5, "rvert": 5, "feel": 5, "free": 5, "suggest": 5, "more": 5, "github": 5, "page": [5, 7], "separ": 6, "yield": [0, 6], "statist": 6, "relationship": 6, "between": [6, 9], "like": [3, 6, 7], "last": [6, 7], "consid": [6, 7, 8], "reus": [6, 7], "instanc": 6, "properti": 6, "onli": 6, "indic": 6, "skip": [6, 8], "By": 6, "none": 6, "possibl": 6, "itertool": 6, "rang": 6, "caveat": [], "indirectli": 6, "radiu": 7, "step": 7, "python": [0, 7], "first": 7, "instal": 7, "pip": 7, "Then": 7, "version": [7, 8], "correspond": 7, "your": [7, 8], "cuda": 7, "conda": 7, "forg": 7, "work": 7, "c": 7, "cudatoolkit": 7, "your_cuda_vers": 7, "manual": 7, "see": [5, 7], "automat": 7, "enabl": 7, "guid": [0, 7], "get": 7, "mani": [0, 7], "onc": 7, "ar2": 7, "g2": 7, "view": 7, "articl": 7, "side": 7, "bar": 7, "learn": 7, "acknowledg": 7, "log": 7, "new": 8, "10": 8, "ad": 8, "cp": 8, "thei": [0, 8], "creat": 8, "partial": 8, "take": 8, "exampl": [4, 8], "x": 8, "window": [8, 9], "block": 8, "pair": 8, "filter": 8, "9": 8, "8": 8, "probabl": [3, 8], "cell": 8, "abov": 8, "border": 8, "step_siz": 9, "defin": 9, "diamet": 9, "center": 9, "pixel": 9, "distanc": 9, "diagon": 9, "treat": 9, "euclidean": 9, "too": 9, "small": 9, "reject": 9, "result": 9, "ahead": 9, "glcm_shape": 9, "shape_aft": 9, "ha": 9, "ani": 9, "know": 9, "signatur": 9, "helper": 9, "function": 9, "def": 9, "im_shap": 9, "tupl": 9, "int": 9, "list": 3, "short": [], "item": [], "should": [], "displai": [], "horizont": [], "full": 4, "stem": 0, "cv": 0, "research": 0, "classifi": 0, "tree": 0, "speci": 0, "singapor": 0, "multispectr": 0, "drone": 0, "data": 0, "field": 0, "realiz": 0, "highli": 0, "were": 0, "subpar": 0, "autom": 0, "mainli": 0, "lack": 0, "wa": [0, 3], "born": 0, "tackl": 0, "41": 3, "where": 3, "na": 3, "replac": 3, "incorrectli": 3, "set": 3, "sum": 3, "instead": 3, "nansum": 3, "42": 3, "earli": 3, "exit": 3, "p": 3, "typehint": 3, "flexibl": 3, "enough": 3, "migrat": 3, "type": 3, "sequenc": 3, "thread": 3}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "batch": 1, "process": 1, "glcmcross": 1, "bin": 2, "caution": [], "time": 2, "scale": 2, "recommend": 2, "changelog": 3, "1": 3, "10": 3, "9": 3, "8": 3, "7": 3, "6": 3, "direct": 4, "bi": 4, "direction": 4, "glcm": [5, 6, 7], "featur": 5, "index": 5, "select": [5, 6], "get": 5, "theori": 5, "cross": 6, "usag": [6, 7], "retriev": 6, "combin": 6, "default": 6, "implement": 7, "cupi": 7, "quick": 7, "start": 7, "read": 7, "more": 7, "develop": 7, "nan": 8, "handl": 8, "pad": 8, "radiu": 9, "step": 9, "size": 9, "check": 9, "suitabl": 9, "ureca": 0, "motiv": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["acknowledgements", "batch_processing", "binning", "changelog", "direction", "features", "glcm_cross", "index", "nan_handling", "radius_step_size"], "filenames": ["acknowledgements.md", "batch_processing.md", "binning.md", "changelog.md", "direction.md", "features.md", "glcm_cross.md", "index.md", "nan_handling.md", "radius_step_size.md"], "titles": ["Acknowledgements", "Batch Processing", "Binning", "Changelog", "Direction", "GLCM Feature Indexing", "Cross GLCM", "GLCM Implemented in CuPy", "NaN Handling", "Radius & Step Size"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 9], "extend": 0, "my": 0, "gratitud": 0, "follow": [0, 5, 6], "peopl": 0, "contribut": [0, 3], "benjamin": 0, "goh": 0, "project": 0, "after": [0, 6], "hi": 0, "implement": [0, 3], "numba": 0, "dr": 0, "ji": 0, "jon": 0, "sit": 0, "host": 0, "guid": [0, 7], "start": [0, 1], "thi": [0, 1, 3, 4, 7, 8, 9], "wang": 0, "jifei": 0, "For": [0, 1, 7], "provid": 0, "idea": 0, "glcm": [0, 1, 2, 3, 4, 8, 9], "bin": [0, 7], "The": [0, 1, 2, 6, 9], "": [0, 1, 2, 3, 5, 9], "need": [0, 1, 2, 7], "stem": 0, "from": [0, 1, 2, 4, 5, 6, 7, 9], "cv": 0, "research": 0, "classifi": 0, "tree": 0, "speci": 0, "singapor": 0, "multispectr": 0, "drone": 0, "data": 0, "mani": [0, 7], "same": [0, 1, 3, 7], "field": 0, "realiz": 0, "process": [0, 3, 7], "imag": [0, 1, 2, 4, 5, 6, 7, 8, 9], "yield": [0, 6], "highli": 0, "import": [0, 1, 2, 4, 5, 6, 7, 9], "featur": [0, 1, 3, 6, 7, 8], "howev": [0, 1, 6], "current": [0, 1], "python": [0, 7], "were": 0, "subpar": 0, "autom": 0, "thei": [0, 8], "mainli": 0, "lack": 0, "speed": 0, "thu": [0, 6, 8], "wa": [0, 3], "born": 0, "tackl": 0, "issu": [0, 3, 5], "It": [1, 4, 9], "faster": [1, 3], "than": 1, "loop": 1, "multipl": 1, "size": [1, 2, 7], "you": [1, 4, 5, 6, 7, 8, 9], "mai": [1, 6, 8, 9], "run": [1, 2, 4, 5, 6, 7, 9], "them": 1, "concurr": 1, "slightli": 1, "next": 1, "while": 1, "still": 1, "being": 1, "glcm_cupi": [1, 2, 4, 5, 6, 7, 9], "cv2": [1, 5, 7], "ar0": [1, 7], "imread": [1, 5, 7], "image_0": 1, "jpg": [1, 2, 4, 5, 6, 7, 9], "ar1": [1, 7], "image_1": 1, "shape": [1, 6, 7, 9], "1080": [1, 6, 7], "1920": [1, 6, 7], "3": [1, 5, 6, 7, 8, 9], "why": 1, "g": [1, 2, 4, 5, 6, 7, 9], "np": [1, 2, 3, 4, 6, 7, 8, 9], "stack": [1, 7], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9], "2": [1, 2, 5, 6, 8], "1074": [1, 7], "1914": [1, 7], "7": [1, 7, 8], "g0": [1, 7], "g1": [1, 7], "0": [1, 2, 3, 5, 6, 7, 8, 9], "1": [1, 5, 6, 8, 9], "dimens": [1, 3, 6, 7], "here": 1, "height": 1, "width": 1, "channel": [1, 5, 6], "so": [1, 6, 7], "retriev": [1, 5], "1st": 1, "simpler": 1, "syntax": [1, 5], "behavior": 1, "ix_combo": [1, 6], "specifi": [1, 4, 6], "doe": [1, 5], "chang": [1, 7], "If": [1, 9], "blank": 1, "ll": [1, 9], "gener": [1, 6, 7], "all": [1, 6], "combin": 1, "each": [1, 6, 9], "To": [2, 5, 6, 7], "reduc": [2, 3, 5], "taken": [2, 6], "we": [2, 5, 8, 9], "shrink": 2, "limit": 2, "maximum": 2, "valu": [2, 3, 8, 9], "input": [2, 3], "e": [2, 7], "an": [2, 6, 7], "max": 2, "255": 2, "requir": 2, "256": 2, "15": [2, 3], "drastic": 2, "16": 2, "argument": 2, "us": [2, 3, 4, 5, 6, 7, 8], "bin_from": [2, 3], "bin_to": 2, "numpi": [2, 3, 4, 6, 9], "pil": [2, 4, 6, 9], "asarrai": [2, 4, 6, 9], "open": [2, 4, 6, 9], "As": 2, "includ": [2, 9], "complex": 2, "o": 2, "n": [2, 5], "4": [2, 4, 8], "try": 2, "test": [2, 3], "purpos": 2, "increas": 2, "when": [2, 6, 8], "readi": 2, "higher": 2, "direct": [2, 7], "merg": 3, "pr": 3, "18": 3, "add": [3, 4], "support": [3, 7], "cupi": 3, "option": 3, "rapid": [3, 7], "cucim": [3, 7], "25": 3, "integr": 3, "check": 3, "stabil": 3, "output": 3, "27": 3, "select": [3, 7], "optim": 3, "out": 3, "unnecessari": 3, "stage": 3, "29": 3, "fix": 3, "ndarrai": 3, "incompat": 3, "tqdm": 3, "30": 3, "batch": [3, 7], "vanilla": 3, "glcmcross": [3, 6], "doesn": 3, "t": [3, 6], "perform": [3, 4], "32": 3, "author": 3, "julio": 3, "faracco": 3, "dissimilar": [3, 5], "35": 3, "adjust": 3, "coerc": 3, "duplic": 3, "code": [3, 8], "handl": [3, 7], "arrai": 3, "condition": 3, "36": 3, "nan": [3, 7], "ignor": [3, 8], "resolv": 3, "bad": 3, "ndim": 3, "rais": 3, "improv": 3, "messag": 3, "14": 3, "11": [3, 7], "allow": 3, "silenc": 3, "13": 3, "normalize_featur": 3, "normalized_featur": 3, "glcm_cross": [3, 6], "unexpect": 3, "arg": 3, "order": [3, 5, 6], "behaviour": 3, "remov": 3, "test__from_window": 3, "redund": 3, "test_from_2d_imag": 3, "fail": [3, 9], "due": 3, "miss": 3, "3rd": [3, 6], "test_image_tiff": 3, "refer": 3, "_binner": 3, "binner": 3, "util": 3, "41": 3, "where": 3, "na": 3, "replac": 3, "incorrectli": 3, "set": 3, "sum": 3, "instead": 3, "nansum": 3, "42": 3, "kernel": [3, 4], "thread": 3, "earli": 3, "exit": 3, "probabl": [3, 8], "p": 3, "list": 3, "like": [3, 6, 7], "typehint": 3, "flexibl": 3, "enough": 3, "migrat": 3, "type": 3, "sequenc": 3, "cross": [3, 7], "overflow": 3, "make": 3, "float32": 3, "drop": 3, "depend": 3, "j": [3, 4, 5, 6], "variabl": 3, "alwai": 3, "can": [4, 5, 6], "east": 4, "south": 4, "south_east": 4, "west": 4, "south_west": 4, "In": [4, 5, 6], "full": 4, "exampl": [4, 8], "algorithm": 4, "popul": [4, 6, 8], "cost": 4, "neglig": 4, "simpli": 4, "transpos": 4, "time": [5, 9], "specif": 5, "unselect": 5, "return": 5, "zero": 5, "5": [5, 8], "normal": 5, "correl": [5, 7], "note": 5, "determin": 5, "contrast": [5, 6, 7], "print": 5, "see": [5, 7], "definit": 5, "textur": [5, 7], "A": [5, 7], "tutori": [5, 7], "v": [5, 7], "march": [5, 7], "2017": [5, 7], "total": 5, "have": [5, 8, 9], "6": [5, 6, 7, 8], "text": 5, "homogen": 5, "sum_": 5, "frac": 5, "p_": 5, "angular": 5, "second": 5, "moment": 5, "asm": 5, "mean": [5, 8], "mu": 5, "varianc": 5, "sigma": 5, "mu_i": 5, "mu_j": 5, "sqrt": 5, "sigma_i": 5, "sigma_j": 5, "left": [5, 7], "lvert": 5, "right": 5, "rvert": 5, "feel": 5, "free": 5, "suggest": 5, "more": 5, "github": 5, "page": [5, 7], "separ": 6, "statist": 6, "relationship": 6, "between": [6, 9], "last": [6, 7], "consid": [6, 7, 8], "reus": [6, 7], "instanc": 6, "properti": 6, "onli": 6, "indic": 6, "skip": [6, 8], "By": 6, "none": 6, "possibl": 6, "itertool": 6, "rang": 6, "indirectli": 6, "radiu": 7, "step": 7, "first": 7, "instal": 7, "pip": 7, "Then": 7, "version": [7, 8], "correspond": 7, "your": [7, 8], "cuda": 7, "recommend": 7, "conda": 7, "forg": 7, "work": 7, "me": 7, "c": 7, "cudatoolkit": 7, "your_cuda_vers": 7, "manual": 7, "automat": 7, "enabl": 7, "get": 7, "onc": 7, "ar2": 7, "g2": 7, "view": 7, "articl": 7, "side": 7, "bar": 7, "learn": 7, "acknowledg": 7, "log": 7, "new": 8, "10": 8, "ad": 8, "cp": 8, "creat": 8, "partial": 8, "take": 8, "x": 8, "window": [8, 9], "block": 8, "pair": 8, "filter": 8, "9": 8, "8": 8, "cell": 8, "abov": 8, "border": 8, "step_siz": 9, "defin": 9, "diamet": 9, "center": 9, "pixel": 9, "distanc": 9, "diagon": 9, "treat": 9, "euclidean": 9, "too": 9, "small": 9, "reject": 9, "result": 9, "ahead": 9, "shape_aft": 9, "glcm_shape": 9, "ha": 9, "ani": 9, "know": 9, "signatur": 9, "helper": 9, "function": 9, "def": 9, "im_shap": 9, "tupl": 9, "int": 9}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "ureca": 0, "motiv": 0, "batch": 1, "process": 1, "glcmcross": 1, "bin": 2, "time": 2, "scale": 2, "recommend": 2, "changelog": 3, "1": 3, "10": 3, "9": 3, "8": 3, "7": 3, "6": 3, "direct": 4, "bi": 4, "direction": 4, "glcm": [5, 6, 7], "featur": 5, "index": 5, "select": [5, 6], "get": 5, "theori": 5, "cross": 6, "usag": [6, 7], "retriev": 6, "combin": 6, "default": 6, "implement": 7, "cupi": 7, "quick": 7, "start": 7, "read": 7, "more": 7, "develop": 7, "nan": 8, "handl": 8, "pad": 8, "radiu": 9, "step": 9, "size": 9, "check": 9, "suitabl": 9}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/sphinx/src/conf.py b/sphinx/src/conf.py index 5780e61..1eb8127 100644 --- a/sphinx/src/conf.py +++ b/sphinx/src/conf.py @@ -23,8 +23,7 @@ author = 'Eve-ning' # The full version, including alpha/beta/rc tags -release = '0.1.9' - +release = '0.1.10' # -- General configuration --------------------------------------------------- @@ -37,8 +36,6 @@ github_username = 'Eve-ning' github_repository = 'glcm-cupy' - - source_suffix = ['.rst', '.md'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -48,7 +45,6 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -61,4 +57,4 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] \ No newline at end of file +html_static_path = ['_static'] From 6aa988b7424a24706c1324371ab36c2dfc79ff9a Mon Sep 17 00:00:00 2001 From: Evening Date: Fri, 5 Aug 2022 21:36:24 +0800 Subject: [PATCH 2/2] Create dists --- dist/glcm_cupy-0.1.10-py3-none-any.whl | Bin 0 -> 19938 bytes dist/glcm_cupy-0.1.10.tar.gz | Bin 0 -> 15384 bytes pyproject.toml | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 dist/glcm_cupy-0.1.10-py3-none-any.whl create mode 100644 dist/glcm_cupy-0.1.10.tar.gz diff --git a/dist/glcm_cupy-0.1.10-py3-none-any.whl b/dist/glcm_cupy-0.1.10-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..9764cd3aa5b89ab95d7dc35abdad0a946c4b5b17 GIT binary patch literal 19938 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