Parcourir la source

Merge branch 'release/v0.4.1'

Jérôme BUISINE il y a 4 ans
Parent
commit
90a81cfb04
88 fichiers modifiés avec 5894 ajouts et 3675 suppressions
  1. 10 9
      README.md
  2. 8 7
      README.rst
  3. 1 1
      build.sh
  4. BIN
      docs/build/doctrees/contributing.doctree
  5. BIN
      docs/build/doctrees/description.doctree
  6. BIN
      docs/build/doctrees/environment.pickle
  7. BIN
      docs/build/doctrees/examples.doctree
  8. BIN
      docs/build/doctrees/index.doctree
  9. BIN
      docs/build/doctrees/ipfml.doctree
  10. BIN
      docs/build/doctrees/ipfml/ipfml.exceptions.doctree
  11. BIN
      docs/build/doctrees/ipfml/ipfml.filters.noise.doctree
  12. BIN
      docs/build/doctrees/ipfml/ipfml.iqa.fr.doctree
  13. BIN
      docs/build/doctrees/ipfml/ipfml.metrics.doctree
  14. BIN
      docs/build/doctrees/ipfml/ipfml.processing.compression.doctree
  15. BIN
      docs/build/doctrees/ipfml/ipfml.processing.doctree
  16. BIN
      docs/build/doctrees/ipfml/ipfml.processing.movement.doctree
  17. BIN
      docs/build/doctrees/ipfml/ipfml.processing.reconstruction.doctree
  18. BIN
      docs/build/doctrees/ipfml/ipfml.processing.segmentation.doctree
  19. BIN
      docs/build/doctrees/ipfml/ipfml.processing.transform.doctree
  20. BIN
      docs/build/doctrees/ipfml/ipfml.utils.doctree
  21. 1 1
      docs/build/html/.buildinfo
  22. BIN
      docs/build/html/_images/nature_lab_l.png
  23. 10 6
      docs/build/html/_modules/index.html
  24. 5 5
      docs/build/html/_modules/ipfml/exceptions.html
  25. 6 7
      docs/build/html/_modules/ipfml/filters/noise.html
  26. 11 7
      docs/build/html/_modules/ipfml/iqa/fr.html
  27. 29 388
      docs/build/html/_modules/ipfml/metrics.html
  28. 0 785
      docs/build/html/_modules/ipfml/processing.html
  29. 302 0
      docs/build/html/_modules/ipfml/processing/compression.html
  30. 336 0
      docs/build/html/_modules/ipfml/processing/movement.html
  31. 318 0
      docs/build/html/_modules/ipfml/processing/reconstruction.html
  32. 294 0
      docs/build/html/_modules/ipfml/processing/segmentation.html
  33. 778 0
      docs/build/html/_modules/ipfml/processing/transform.html
  34. 11 8
      docs/build/html/_modules/ipfml/utils.html
  35. 2 2
      docs/build/html/_sources/description.rst.txt
  36. 2 25
      docs/build/html/_sources/examples.rst.txt
  37. 13 5
      docs/build/html/_sources/ipfml.rst.txt
  38. 1 15
      docs/build/html/_sources/ipfml/ipfml.metrics.rst.txt
  39. 25 0
      docs/build/html/_sources/ipfml/ipfml.processing.compression.rst.txt
  40. 23 0
      docs/build/html/_sources/ipfml/ipfml.processing.movement.rst.txt
  41. 24 0
      docs/build/html/_sources/ipfml/ipfml.processing.reconstruction.rst.txt
  42. 22 0
      docs/build/html/_sources/ipfml/ipfml.processing.segmentation.rst.txt
  43. 14 9
      docs/source/ipfml/ipfml.processing.rst
  44. 1 1
      docs/build/html/_static/documentation_options.js
  45. 6 6
      docs/build/html/contributing.html
  46. 10 10
      docs/build/html/description.html
  47. 10 30
      docs/build/html/examples.html
  48. 51 39
      docs/build/html/genindex.html
  49. 15 9
      docs/build/html/index.html
  50. 47 17
      docs/build/html/ipfml.html
  51. 8 8
      docs/build/html/ipfml/ipfml.exceptions.html
  52. 8 8
      docs/build/html/ipfml/ipfml.filters.noise.html
  53. 10 10
      docs/build/html/ipfml/ipfml.iqa.fr.html
  54. 29 437
      docs/build/html/ipfml/ipfml.metrics.html
  55. 363 0
      docs/build/html/ipfml/ipfml.processing.compression.html
  56. 0 747
      docs/build/html/ipfml/ipfml.processing.html
  57. 322 0
      docs/build/html/ipfml/ipfml.processing.movement.html
  58. 350 0
      docs/build/html/ipfml/ipfml.processing.reconstruction.html
  59. 296 0
      docs/build/html/ipfml/ipfml.processing.segmentation.html
  60. 852 0
      docs/build/html/ipfml/ipfml.processing.transform.html
  61. 14 13
      docs/build/html/ipfml/ipfml.utils.html
  62. BIN
      docs/build/html/objects.inv
  63. 26 6
      docs/build/html/py-modindex.html
  64. 6 6
      docs/build/html/search.html
  65. 1 1
      docs/build/html/searchindex.js
  66. 1 1
      docs/index.html
  67. 11 11
      docs/source/conf.py
  68. 2 2
      docs/source/description.rst
  69. 2 25
      docs/source/examples.rst
  70. 13 5
      docs/source/ipfml.rst
  71. 1 15
      docs/source/ipfml/ipfml.metrics.rst
  72. 25 0
      docs/source/ipfml/ipfml.processing.compression.rst
  73. 23 0
      docs/source/ipfml/ipfml.processing.movement.rst
  74. 24 0
      docs/source/ipfml/ipfml.processing.reconstruction.rst
  75. 22 0
      docs/source/ipfml/ipfml.processing.segmentation.rst
  76. 14 9
      docs/build/html/_sources/ipfml/ipfml.processing.rst.txt
  77. 1 2
      ipfml/filters/noise.py
  78. 6 2
      ipfml/iqa/fr.py
  79. 24 383
      ipfml/metrics.py
  80. 0 582
      ipfml/processing.py
  81. 0 0
      ipfml/processing/__init__.py
  82. 99 0
      ipfml/processing/compression.py
  83. 133 0
      ipfml/processing/movement.py
  84. 115 0
      ipfml/processing/reconstruction.py
  85. 91 0
      ipfml/processing/segmentation.py
  86. 575 0
      ipfml/processing/transform.py
  87. 6 3
      ipfml/utils.py
  88. 35 7
      setup.py

+ 10 - 9
README.md

@@ -2,7 +2,7 @@ Image Processing For Machine Learning
 =====================================
 
 <p align="center">
-    <img src="ipfml_logo.png" width="40%">
+    <img src="https://github.com/prise-3d/ipfml/blob/master/ipfml_logo.png" width="40%">
 </p>
 
 Installation
@@ -19,9 +19,9 @@ To use, simply do :
 
 ```python
 from PIL import Image
-from ipfml import processing
+from ipfml.processing import transform
 img = Image.open('path/to/image.png')
-s = processing.get_LAB_L_SVD_s(img)
+s = transform.get_LAB_L_SVD_s(img)
 ```
 
 Modules
@@ -29,18 +29,19 @@ Modules
 
 This project contains modules.
 
-- **processing** : *Image processing module*
-- **metrics** : *Metrics computation of PIL or 2D numpy image*
-- **filters** : *Image filter module*
+- **metrics** : *Metrics computation for model performance*
 - **utils** : *All utils functions developed for the package*
 - **exceptions** : *All customized exceptions*
+- **filters** : *Image filter module*
+- **iqa** : *Image quality assessments*
+- **processing** : *Image processing module*
 
-All these modules will be enhanced during development of the package. Documentation is available [here](https://prise-3d.github.io/IPFML/).
+All these modules will be enhanced during development of the package. Documentation is available [here](https://prise-3d.github.io/ipfml/).
 
 How to contribute
 -----------------
 
-Please refer to the [guidelines](https://github.com/prise-3d/IPFML/blob/master/CONTRIBUTING.md) file if you want to contribute!
+Please refer to the [guidelines](https://github.com/prise-3d/ipfml/blob/master/CONTRIBUTING.md) file if you want to contribute!
 
 ## Contributors
 
@@ -48,4 +49,4 @@ Please refer to the [guidelines](https://github.com/prise-3d/IPFML/blob/master/C
 
 ## License
 
-[MIT](https://github.com/prise-3d/IPFML/blob/master/LICENSE)
+[MIT](https://github.com/prise-3d/ipfml/blob/master/LICENSE)

+ 8 - 7
README.rst

@@ -18,9 +18,9 @@ To use, simply do :
 .. code:: python
 
    from PIL import Image
-   from ipfml import processing
+   from ipfml.processing import transform
    img = Image.open('path/to/image.png')
-   s = processing.get_LAB_L_SVD_s(img)
+   s = transform.get_LAB_L_SVD_s(img)
 
 
 Modules
@@ -28,11 +28,12 @@ Modules
 
 This project contains modules.
 
-- **processing** : *Image processing of images*
-- **metrics** : *Metrics computation of PIL or 2D, 3D numpy images*
-- **filters** : *Filters implemented such as noise filters*
+- **metrics** : *Metrics computation for model performance*
 - **utils** : *All utils functions developed for the package*
 - **exceptions** : *All customized exceptions*
+- **filters** : *Image filter module*
+- **iqa** : *Image quality assessments*
+- **processing** : *Image processing module*
 
 All these modules will be enhanced during development of the package.
 
@@ -41,11 +42,11 @@ Documentation
 
 For more information about package, documentation_ is available.
 
-.. _documentation: https://prise-3d.github.io/IPFML/
+.. _documentation: https://prise-3d.github.io/ipfml/
 
 Contributing
 ------------
 
 Please refer to the guidelines_ file if you want to contribute!
 
-.. _guidelines: https://github.com/prise-3d/IPFML/blob/master/CONTRIBUTING.md 
+.. _guidelines: https://github.com/prise-3d/ipfml/blob/master/CONTRIBUTING.md 

+ 1 - 1
build.sh

@@ -10,4 +10,4 @@ python setup.py build
 
 echo "Build documentation..."
 rm -r docs/source/ipfml
-cd docs && make clean && make html
+cd docs && make clean && make html

BIN
docs/build/doctrees/contributing.doctree


BIN
docs/build/doctrees/description.doctree


BIN
docs/build/doctrees/environment.pickle


BIN
docs/build/doctrees/examples.doctree


BIN
docs/build/doctrees/index.doctree


BIN
docs/build/doctrees/ipfml.doctree


BIN
docs/build/doctrees/ipfml/ipfml.exceptions.doctree


BIN
docs/build/doctrees/ipfml/ipfml.filters.noise.doctree


BIN
docs/build/doctrees/ipfml/ipfml.iqa.fr.doctree


BIN
docs/build/doctrees/ipfml/ipfml.metrics.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.compression.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.movement.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.reconstruction.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.segmentation.doctree


BIN
docs/build/doctrees/ipfml/ipfml.processing.transform.doctree


BIN
docs/build/doctrees/ipfml/ipfml.utils.doctree


+ 1 - 1
docs/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: 29e6f78aa0a4cae0290113e20494277d
+config: 0c36f5e963cf0ab0b9585d0aa44cdcd5
 tags: 645f666f9bcd5a90fca523b33c5a78b7

BIN
docs/build/html/_images/nature_lab_l.png


+ 10 - 6
docs/build/html/_modules/index.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Overview: module code &mdash; IPFML v0.4.0 documentation</title>
+  <title>Overview: module code &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -151,7 +151,11 @@
 <li><a href="ipfml/filters/noise.html">ipfml.filters.noise</a></li>
 <li><a href="ipfml/iqa/fr.html">ipfml.iqa.fr</a></li>
 <li><a href="ipfml/metrics.html">ipfml.metrics</a></li>
-<li><a href="ipfml/processing.html">ipfml.processing</a></li>
+<li><a href="ipfml/processing/compression.html">ipfml.processing.compression</a></li>
+<li><a href="ipfml/processing/movement.html">ipfml.processing.movement</a></li>
+<li><a href="ipfml/processing/reconstruction.html">ipfml.processing.reconstruction</a></li>
+<li><a href="ipfml/processing/segmentation.html">ipfml.processing.segmentation</a></li>
+<li><a href="ipfml/processing/transform.html">ipfml.processing.transform</a></li>
 <li><a href="ipfml/utils.html">ipfml.utils</a></li>
 </ul>
 

+ 5 - 5
docs/build/html/_modules/ipfml/exceptions.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.exceptions &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.exceptions &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="../../index.html" class="icon icon-home"> IPFML
+            <a href="../../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../../index.html">IPFML</a>
+          <a href="../../index.html">ipfml</a>
         
       </nav>
 

+ 6 - 7
docs/build/html/_modules/ipfml/filters/noise.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.filters.noise &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.filters.noise &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="../../../index.html" class="icon icon-home"> IPFML
+            <a href="../../../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../../description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../../../index.html">IPFML</a>
+          <a href="../../../index.html">ipfml</a>
         
       </nav>
 
@@ -153,11 +153,10 @@
 <span class="sd">Noise filters to apply on images</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
+<span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
 <span class="kn">import</span> <span class="nn">random</span>
 
-<span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">processing</span>
-
 
 <span class="k">def</span> <span class="nf">_normalise</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
 

+ 11 - 7
docs/build/html/_modules/ipfml/iqa/fr.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.iqa.fr &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.iqa.fr &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="../../../index.html" class="icon icon-home"> IPFML
+            <a href="../../../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../../description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../../../index.html">IPFML</a>
+          <a href="../../../index.html">ipfml</a>
         
       </nav>
 
@@ -153,10 +153,14 @@
 <span class="sd">Full-reference Image Quality Assessment (FR-IQA) methods</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
+<span class="c1"># main imports</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+
+<span class="c1"># computations imports</span>
 <span class="kn">from</span> <span class="nn">skimage.measure</span> <span class="k">import</span> <span class="n">compare_ssim</span><span class="p">,</span> <span class="n">compare_psnr</span>
-<span class="kn">from</span> <span class="nn">ipfml.exceptions</span> <span class="k">import</span> <span class="n">NumpyShapeComparisonException</span>
 
-<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="c1"># ipfml imports</span>
+<span class="kn">from</span> <span class="nn">ipfml.exceptions</span> <span class="k">import</span> <span class="n">NumpyShapeComparisonException</span>
 
 
 <span class="k">def</span> <span class="nf">_prepare_arrays</span><span class="p">(</span><span class="n">img_true</span><span class="p">,</span> <span class="n">img_test</span><span class="p">,</span> <span class="n">p_dtype</span><span class="o">=</span><span class="s1">&#39;float32&#39;</span><span class="p">):</span>

Fichier diff supprimé car celui-ci est trop grand
+ 29 - 388
docs/build/html/_modules/ipfml/metrics.html


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 785
docs/build/html/_modules/ipfml/processing.html


+ 302 - 0
docs/build/html/_modules/ipfml/processing/compression.html

@@ -0,0 +1,302 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ipfml.processing.compression &mdash; ipfml v0.4.1 documentation</title>
+  
+
+  
+  
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
+    <link rel="index" title="Index" href="../../../genindex.html" />
+    <link rel="search" title="Search" href="../../../search.html" /> 
+
+  
+  <script src="../../../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav">
+
+   
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../../../index.html" class="icon icon-home"> ipfml
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                0.4.1
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../description.html">Description</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation of ipfml</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../examples.html">Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../contributing.html">Contributing</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" aria-label="top navigation">
+        
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../../../index.html">ipfml</a>
+        
+      </nav>
+
+
+      <div class="wy-nav-content">
+        
+        <div class="rst-content">
+        
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="../../../index.html">Docs</a> &raquo;</li>
+        
+          <li><a href="../../index.html">Module code</a> &raquo;</li>
+        
+      <li>ipfml.processing.compression</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+      </li>
+    
+  </ul>
+
+  
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <h1>Source code for ipfml.processing.compression</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Functions for image compression and extraction</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<span class="c1"># image processing imports</span>
+<span class="kn">from</span> <span class="nn">numpy.linalg</span> <span class="k">import</span> <span class="n">svd</span>
+
+
+<div class="viewcode-block" id="get_SVD"><a class="viewcode-back" href="../../../ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD">[docs]</a><span class="k">def</span> <span class="nf">get_SVD</span><span class="p">(</span><span class="n">image</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Transforms Image using SVD compression</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">        image: image to convert into SVD compression</span>
+
+<span class="sd">    Return:</span>
+<span class="sd">        U, s, V obtained from SVD compression</span>
+
+<span class="sd">    Usage:</span>
+
+<span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import compression</span>
+<span class="sd">    &gt;&gt;&gt; img = Image.open(&#39;./images/test_img.png&#39;)</span>
+<span class="sd">    &gt;&gt;&gt; U, s, V = compression.get_SVD(img)</span>
+<span class="sd">    &gt;&gt;&gt; U.shape</span>
+<span class="sd">    (200, 200, 3)</span>
+<span class="sd">    &gt;&gt;&gt; len(s)</span>
+<span class="sd">    200</span>
+<span class="sd">    &gt;&gt;&gt; V.shape</span>
+<span class="sd">    (200, 3, 3)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">svd</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="get_SVD_s"><a class="viewcode-back" href="../../../ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_s">[docs]</a><span class="k">def</span> <span class="nf">get_SVD_s</span><span class="p">(</span><span class="n">image</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Transforms Image into SVD and returns only &#39;s&#39; part</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">        image: image to convert</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">        vector of singular values obtained from SVD compression</span>
+
+<span class="sd">    Usage:</span>
+
+<span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import compression</span>
+<span class="sd">    &gt;&gt;&gt; img = Image.open(&#39;./images/test_img.png&#39;)</span>
+<span class="sd">    &gt;&gt;&gt; s = compression.get_SVD_s(img)</span>
+<span class="sd">    &gt;&gt;&gt; len(s)</span>
+<span class="sd">    200</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">s</span></div>
+
+
+<div class="viewcode-block" id="get_SVD_U"><a class="viewcode-back" href="../../../ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_U">[docs]</a><span class="k">def</span> <span class="nf">get_SVD_U</span><span class="p">(</span><span class="n">image</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Transforms Image into SVD and returns only &#39;U&#39; part</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">        image: image to convert</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">        U matrix from SVD compression</span>
+
+<span class="sd">    Usage:</span>
+
+<span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import compression</span>
+<span class="sd">    &gt;&gt;&gt; img = Image.open(&#39;./images/test_img.png&#39;)</span>
+<span class="sd">    &gt;&gt;&gt; U = compression.get_SVD_U(img)</span>
+<span class="sd">    &gt;&gt;&gt; U.shape</span>
+<span class="sd">    (200, 200, 3)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">U</span></div>
+
+
+<div class="viewcode-block" id="get_SVD_V"><a class="viewcode-back" href="../../../ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_V">[docs]</a><span class="k">def</span> <span class="nf">get_SVD_V</span><span class="p">(</span><span class="n">image</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Transforms Image into SVD and returns only &#39;V&#39; part</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">        image: image to convert</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">        V matrix obtained from SVD compression</span>
+
+<span class="sd">    Usage :</span>
+
+<span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import compression</span>
+<span class="sd">    &gt;&gt;&gt; img = Image.open(&#39;./images/test_img.png&#39;)</span>
+<span class="sd">    &gt;&gt;&gt; V = compression.get_SVD_V(img)</span>
+<span class="sd">    &gt;&gt;&gt; V.shape</span>
+<span class="sd">    (200, 3, 3)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">V</span></div>
+</pre></div>
+
+           </div>
+           
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2019, Jérôme BUISINE
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../../../_static/jquery.js"></script>
+        <script type="text/javascript" src="../../../_static/underscore.js"></script>
+        <script type="text/javascript" src="../../../_static/doctools.js"></script>
+        <script type="text/javascript" src="../../../_static/language_data.js"></script>
+    
+
+  
+
+  <script type="text/javascript" src="../../../_static/js/theme.js"></script>
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

Fichier diff supprimé car celui-ci est trop grand
+ 336 - 0
docs/build/html/_modules/ipfml/processing/movement.html


Fichier diff supprimé car celui-ci est trop grand
+ 318 - 0
docs/build/html/_modules/ipfml/processing/reconstruction.html


+ 294 - 0
docs/build/html/_modules/ipfml/processing/segmentation.html

@@ -0,0 +1,294 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ipfml.processing.segmentation &mdash; ipfml v0.4.1 documentation</title>
+  
+
+  
+  
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
+    <link rel="index" title="Index" href="../../../genindex.html" />
+    <link rel="search" title="Search" href="../../../search.html" /> 
+
+  
+  <script src="../../../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav">
+
+   
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../../../index.html" class="icon icon-home"> ipfml
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                0.4.1
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../description.html">Description</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ipfml.html">Documentation of ipfml</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../examples.html">Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../contributing.html">Contributing</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" aria-label="top navigation">
+        
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../../../index.html">ipfml</a>
+        
+      </nav>
+
+
+      <div class="wy-nav-content">
+        
+        <div class="rst-content">
+        
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="../../../index.html">Docs</a> &raquo;</li>
+        
+          <li><a href="../../index.html">Module code</a> &raquo;</li>
+        
+      <li>ipfml.processing.segmentation</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+      </li>
+    
+  </ul>
+
+  
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <h1>Source code for ipfml.processing.segmentation</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">All segmentation methods applied on images</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<span class="c1"># main imports</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+
+<span class="c1"># image processing imports</span>
+<span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+
+
+<div class="viewcode-block" id="divide_in_blocks"><a class="viewcode-back" href="../../../ipfml/ipfml.processing.segmentation.html#ipfml.processing.segmentation.divide_in_blocks">[docs]</a><span class="k">def</span> <span class="nf">divide_in_blocks</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">block_size</span><span class="p">,</span> <span class="n">pil</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+    <span class="sd">&#39;&#39;&#39;Divide image into equal size blocks</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">        image: PIL Image or Numpy array</span>
+<span class="sd">        block: tuple (width, height) representing the size of each dimension of the block</span>
+<span class="sd">        pil: block type returned as PIL Image (default True)</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">        list containing all 2D Numpy blocks (in RGB or not)</span>
+
+<span class="sd">    Raises:</span>
+<span class="sd">        ValueError: If `image_width` or `image_height` are not compatible to produce correct block sizes</span>
+
+<span class="sd">    Example:</span>
+
+<span class="sd">    &gt;&gt;&gt; import numpy as np</span>
+<span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import transform, segmentation</span>
+<span class="sd">    &gt;&gt;&gt; image_values = np.random.randint(255, size=(800, 800, 3))</span>
+<span class="sd">    &gt;&gt;&gt; blocks = segmentation.divide_in_blocks(image_values, (20, 20))</span>
+<span class="sd">    &gt;&gt;&gt; len(blocks)</span>
+<span class="sd">    1600</span>
+<span class="sd">    &gt;&gt;&gt; blocks[0].width</span>
+<span class="sd">    20</span>
+<span class="sd">    &gt;&gt;&gt; blocks[0].height</span>
+<span class="sd">    20</span>
+<span class="sd">    &gt;&gt;&gt; img_l = Image.open(&#39;./images/test_img.png&#39;)</span>
+<span class="sd">    &gt;&gt;&gt; L = transform.get_LAB_L(img_l)</span>
+<span class="sd">    &gt;&gt;&gt; blocks_L = segmentation.divide_in_blocks(L, (100, 100))</span>
+<span class="sd">    &gt;&gt;&gt; len(blocks_L)</span>
+<span class="sd">    4</span>
+<span class="sd">    &gt;&gt;&gt; blocks_L[0].width</span>
+<span class="sd">    100</span>
+<span class="sd">    &#39;&#39;&#39;</span>
+
+    <span class="n">blocks</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">mode</span> <span class="o">=</span> <span class="s1">&#39;RGB&#39;</span>
+
+    <span class="c1"># convert in Numpy array</span>
+    <span class="n">image_array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
+
+    <span class="c1"># check dimension of input image</span>
+    <span class="k">if</span> <span class="n">image_array</span><span class="o">.</span><span class="n">ndim</span> <span class="o">!=</span> <span class="mi">3</span><span class="p">:</span>
+        <span class="n">mode</span> <span class="o">=</span> <span class="s1">&#39;L&#39;</span>
+        <span class="n">image_width</span><span class="p">,</span> <span class="n">image_height</span> <span class="o">=</span> <span class="n">image_array</span><span class="o">.</span><span class="n">shape</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">image_width</span><span class="p">,</span> <span class="n">image_height</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">image_array</span><span class="o">.</span><span class="n">shape</span>
+
+    <span class="c1"># check size compatibility</span>
+    <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="o">=</span> <span class="n">block_size</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">image_width</span> <span class="o">%</span> <span class="n">width</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Width size issue, block size not compatible&quot;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">image_height</span> <span class="o">%</span> <span class="n">height</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Height size issue, block size not compatible&quot;</span><span class="p">)</span>
+
+    <span class="n">nb_block_width</span> <span class="o">=</span> <span class="n">image_width</span> <span class="o">/</span> <span class="n">width</span>
+    <span class="n">nb_block_height</span> <span class="o">=</span> <span class="n">image_height</span> <span class="o">/</span> <span class="n">height</span>
+
+    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">nb_block_width</span><span class="p">)):</span>
+
+        <span class="n">begin_x</span> <span class="o">=</span> <span class="n">i</span> <span class="o">*</span> <span class="n">width</span>
+
+        <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">nb_block_height</span><span class="p">)):</span>
+
+            <span class="n">begin_y</span> <span class="o">=</span> <span class="n">j</span> <span class="o">*</span> <span class="n">height</span>
+
+            <span class="c1"># getting sub block information</span>
+            <span class="n">current_block</span> <span class="o">=</span> <span class="n">image_array</span><span class="p">[</span><span class="n">begin_x</span><span class="p">:(</span><span class="n">begin_x</span> <span class="o">+</span> <span class="n">width</span><span class="p">),</span> <span class="n">begin_y</span><span class="p">:(</span>
+                <span class="n">begin_y</span> <span class="o">+</span> <span class="n">height</span><span class="p">)]</span>
+
+            <span class="k">if</span> <span class="n">pil</span><span class="p">:</span>
+                <span class="n">blocks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+                    <span class="n">Image</span><span class="o">.</span><span class="n">fromarray</span><span class="p">(</span><span class="n">current_block</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s1">&#39;uint8&#39;</span><span class="p">),</span> <span class="n">mode</span><span class="p">))</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">blocks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_block</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">blocks</span></div>
+</pre></div>
+
+           </div>
+           
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2019, Jérôme BUISINE
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../../../_static/jquery.js"></script>
+        <script type="text/javascript" src="../../../_static/underscore.js"></script>
+        <script type="text/javascript" src="../../../_static/doctools.js"></script>
+        <script type="text/javascript" src="../../../_static/language_data.js"></script>
+    
+
+  
+
+  <script type="text/javascript" src="../../../_static/js/theme.js"></script>
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

Fichier diff supprimé car celui-ci est trop grand
+ 778 - 0
docs/build/html/_modules/ipfml/processing/transform.html


+ 11 - 8
docs/build/html/_modules/ipfml/utils.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.utils &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.utils &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="../../index.html" class="icon icon-home"> IPFML
+            <a href="../../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../../index.html">IPFML</a>
+          <a href="../../index.html">ipfml</a>
         
       </nav>
 
@@ -150,13 +150,15 @@
             
   <h1>Source code for ipfml.utils</h1><div class="highlight"><pre>
 <span></span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">Utils functions of ipfml package (array normalization)</span>
+<span class="sd">Utils functions of ipfml package (normalization, integral...)</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
+<span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
 <span class="kn">import</span> <span class="nn">math</span>
 <span class="kn">import</span> <span class="nn">sys</span>
 
+<span class="c1"># computation imports</span>
 <span class="kn">from</span> <span class="nn">scipy.integrate</span> <span class="k">import</span> <span class="n">simps</span>
 
 
@@ -235,9 +237,10 @@
 <span class="sd">    Example:</span>
 
 <span class="sd">    &gt;&gt;&gt; from PIL import Image</span>
-<span class="sd">    &gt;&gt;&gt; from ipfml import utils, processing</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml import utils</span>
+<span class="sd">    &gt;&gt;&gt; from ipfml.processing import transform</span>
 <span class="sd">    &gt;&gt;&gt; img = Image.open(&#39;./images/test_img.png&#39;)</span>
-<span class="sd">    &gt;&gt;&gt; img_mscn = processing.rgb_to_mscn(img)</span>
+<span class="sd">    &gt;&gt;&gt; img_mscn = transform.rgb_to_mscn(img)</span>
 <span class="sd">    &gt;&gt;&gt; img_normalized = utils.normalize_2D_arr(img_mscn)</span>
 <span class="sd">    &gt;&gt;&gt; img_normalized.shape</span>
 <span class="sd">    (200, 200)</span>

+ 2 - 2
docs/build/html/_sources/description.rst.txt

@@ -23,6 +23,6 @@ To use, simply do :
 .. code:: python
     
    from PIL import Image
-   from ipfml import processing
+   from ipfml.processing import transform
    img = Image.open('path/to/image.png')
-   s = processing.get_LAB_L_SVD_s(img)
+   s = transform.get_LAB_L_SVD_s(img)

+ 2 - 25
docs/build/html/_sources/examples.rst.txt

@@ -7,41 +7,18 @@ All examples below will use this picture.
 
 .. image:: _static/nature.jpg
 
-Metrics example
---------------------
-
-Using **metrics** module you can convert image into Lab, XYZ, SVD...
-
-.. code:: python
-   
-   from PIL import Image
-   from ipfml import metrics
-
-   img_path = 'path/to/image_nature.jpg'
-   img = Image.open(img_path)
-   
-   s = metrics.get_LAB_L(img)
-
-   # convert result into PIL Image
-   output = Image.fromarray(s)
-   output.show()
-
-This is the generated output using only L chanel from Lab.
-
-.. image:: _static/nature_lab_l.png
-
 Processing example
 --------------------
 
 .. code:: python
    
    from PIL import Image
-   from ipfml import processing
+   from ipfml.processing import transform
 
    img_path = 'path/to/image_nature.jpg'
    img = Image.open(img_path)
    
-   low_bits_img = processing.rgb_to_grey_low_bits(img, 6)
+   low_bits_img = transform.rgb_to_grey_low_bits(img, 6)
    
    output = Image.fromarray(low_bits_img)
    output.show()

+ 13 - 5
docs/build/html/_sources/ipfml.rst.txt

@@ -1,13 +1,10 @@
-Documentation
-================
-
+Documentation of ipfml
+======================
 
 .. autosummary::
    :toctree: ipfml
 
    ipfml.metrics
-   ipfml.processing
-   
    ipfml.utils
    ipfml.exceptions  
 
@@ -27,3 +24,14 @@ ipfml.iqa
   
    ipfml.iqa.fr
 
+ipfml.processing
+-------------------
+
+.. autosummary::
+   :toctree: ipfml
+
+   ipfml.processing.compression
+   ipfml.processing.movement
+   ipfml.processing.reconstruction
+   ipfml.processing.segmentation
+   ipfml.processing.transform

+ 1 - 15
docs/build/html/_sources/ipfml/ipfml.metrics.rst.txt

@@ -9,21 +9,7 @@ ipfml.metrics
 
    .. autosummary::
    
-      get_LAB
-      get_LAB_L
-      get_LAB_a
-      get_LAB_b
-      get_SVD
-      get_SVD_U
-      get_SVD_V
-      get_SVD_s
-      get_XYZ
-      get_XYZ_X
-      get_XYZ_Y
-      get_XYZ_Z
-      get_bits_img
-      get_low_bits_img
-      gray_to_mscn
+      coefficient_of_determination
    
    
 

+ 25 - 0
docs/build/html/_sources/ipfml/ipfml.processing.compression.rst.txt

@@ -0,0 +1,25 @@
+ipfml.processing.compression
+============================
+
+.. automodule:: ipfml.processing.compression
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      get_SVD
+      get_SVD_U
+      get_SVD_V
+      get_SVD_s
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 23 - 0
docs/build/html/_sources/ipfml/ipfml.processing.movement.rst.txt

@@ -0,0 +1,23 @@
+ipfml.processing.movement
+=========================
+
+.. automodule:: ipfml.processing.movement
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      fusion_images
+      rotate_image
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 24 - 0
docs/build/html/_sources/ipfml/ipfml.processing.reconstruction.rst.txt

@@ -0,0 +1,24 @@
+ipfml.processing.reconstruction
+===============================
+
+.. automodule:: ipfml.processing.reconstruction
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      fast_ica
+      ipca
+      svd
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 22 - 0
docs/build/html/_sources/ipfml/ipfml.processing.segmentation.rst.txt

@@ -0,0 +1,22 @@
+ipfml.processing.segmentation
+=============================
+
+.. automodule:: ipfml.processing.segmentation
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      divide_in_blocks
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 14 - 9
docs/source/ipfml/ipfml.processing.rst

@@ -1,7 +1,7 @@
-ipfml.processing
-================
+ipfml.processing.transform
+==========================
 
-.. automodule:: ipfml.processing
+.. automodule:: ipfml.processing.transform
 
    
    
@@ -9,21 +9,26 @@ ipfml.processing
 
    .. autosummary::
    
-      divide_in_blocks
-      fast_ica_reconstruction
-      fusion_images
+      get_LAB
+      get_LAB_L
       get_LAB_L_SVD
       get_LAB_L_SVD_U
       get_LAB_L_SVD_V
       get_LAB_L_SVD_s
+      get_LAB_a
+      get_LAB_b
+      get_XYZ
+      get_XYZ_X
+      get_XYZ_Y
+      get_XYZ_Z
+      get_bits_img
+      get_low_bits_img
       get_mscn_coefficients
-      ipca_reconstruction
+      gray_to_mscn
       rgb_to_LAB_L_bits
       rgb_to_LAB_L_low_bits
       rgb_to_grey_low_bits
       rgb_to_mscn
-      rotate_image
-      svd_reconstruction
    
    
 

+ 1 - 1
docs/build/html/_static/documentation_options.js

@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: 'v0.4.0',
+    VERSION: 'v0.4.1',
     LANGUAGE: 'None',
     COLLAPSE_INDEX: false,
     FILE_SUFFIX: '.html',

+ 6 - 6
docs/build/html/contributing.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Contributing &mdash; IPFML v0.4.0 documentation</title>
+  <title>Contributing &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -47,7 +47,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -57,7 +57,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -84,7 +84,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Contributing</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#using-github">Using GitHub</a></li>
@@ -104,7 +104,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -142,7 +142,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/contributing.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/contributing.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         

+ 10 - 10
docs/build/html/description.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Description &mdash; IPFML v0.4.0 documentation</title>
+  <title>Description &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -28,7 +28,7 @@
   <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="Documentation" href="ipfml.html" />
+    <link rel="next" title="Documentation of ipfml" href="ipfml.html" />
     <link rel="prev" title="Image Processing For Machine Learning" href="index.html" /> 
 
   
@@ -48,7 +48,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -89,7 +89,7 @@
 <li class="toctree-l2"><a class="reference internal" href="#how-to-use">How to use ?</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
 </ul>
@@ -106,7 +106,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -144,7 +144,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/description.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/description.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -172,9 +172,9 @@
 <h2>How to use ?<a class="headerlink" href="#how-to-use" title="Permalink to this headline">¶</a></h2>
 <p>To use, simply do :</p>
 <div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">processing</span>
+<span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
 <span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;path/to/image.png&#39;</span><span class="p">)</span>
-<span class="n">s</span> <span class="o">=</span> <span class="n">processing</span><span class="o">.</span><span class="n">get_LAB_L_SVD_s</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="n">s</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L_SVD_s</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
 </pre></div>
 </div>
 </div>
@@ -188,7 +188,7 @@
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="ipfml.html" class="btn btn-neutral float-right" title="Documentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="ipfml.html" class="btn btn-neutral float-right" title="Documentation of ipfml" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="index.html" class="btn btn-neutral" title="Image Processing For Machine Learning" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

+ 10 - 30
docs/build/html/examples.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Examples &mdash; IPFML v0.4.0 documentation</title>
+  <title>Examples &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -29,7 +29,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Contributing" href="contributing.html" />
-    <link rel="prev" title="ipfml.iqa.fr" href="ipfml/ipfml.iqa.fr.html" /> 
+    <link rel="prev" title="ipfml.processing.transform" href="ipfml/ipfml.processing.transform.html" /> 
 
   
   <script src="_static/js/modernizr.min.js"></script>
@@ -48,7 +48,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,9 +85,8 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Examples</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#metrics-example">Metrics example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#processing-example">Processing example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#noise-filter-example">Noise filter example</a></li>
 </ul>
@@ -107,7 +106,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -145,7 +144,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/examples.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/examples.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -164,34 +163,15 @@
 <p>Some examples are already available into documentation. You can find here some others and results of use of IPFML package.</p>
 <p>All examples below will use this picture.</p>
 <img alt="_images/nature.jpg" src="_images/nature.jpg" />
-<div class="section" id="metrics-example">
-<h2>Metrics example<a class="headerlink" href="#metrics-example" title="Permalink to this headline">¶</a></h2>
-<p>Using <strong>metrics</strong> module you can convert image into Lab, XYZ, SVD…</p>
-<div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-
-<span class="n">img_path</span> <span class="o">=</span> <span class="s1">&#39;path/to/image_nature.jpg&#39;</span>
-<span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">img_path</span><span class="p">)</span>
-
-<span class="n">s</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB_L</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-
-<span class="c1"># convert result into PIL Image</span>
-<span class="n">output</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">fromarray</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
-<span class="n">output</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
-</pre></div>
-</div>
-<p>This is the generated output using only L chanel from Lab.</p>
-<img alt="_images/nature_lab_l.png" src="_images/nature_lab_l.png" />
-</div>
 <div class="section" id="processing-example">
 <h2>Processing example<a class="headerlink" href="#processing-example" title="Permalink to this headline">¶</a></h2>
 <div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">processing</span>
+<span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
 
 <span class="n">img_path</span> <span class="o">=</span> <span class="s1">&#39;path/to/image_nature.jpg&#39;</span>
 <span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">img_path</span><span class="p">)</span>
 
-<span class="n">low_bits_img</span> <span class="o">=</span> <span class="n">processing</span><span class="o">.</span><span class="n">rgb_to_grey_low_bits</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">6</span><span class="p">)</span>
+<span class="n">low_bits_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_grey_low_bits</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">6</span><span class="p">)</span>
 
 <span class="n">output</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">fromarray</span><span class="p">(</span><span class="n">low_bits_img</span><span class="p">)</span>
 <span class="n">output</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
@@ -232,7 +212,7 @@
         <a href="contributing.html" class="btn btn-neutral float-right" title="Contributing" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="ipfml/ipfml.iqa.fr.html" class="btn btn-neutral" title="ipfml.iqa.fr" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="ipfml/ipfml.processing.transform.html" class="btn btn-neutral" title="ipfml.processing.transform" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   

+ 51 - 39
docs/build/html/genindex.html

@@ -9,7 +9,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Index &mdash; IPFML v0.4.0 documentation</title>
+  <title>Index &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -47,7 +47,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -57,7 +57,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -84,7 +84,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
 </ul>
@@ -101,7 +101,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -139,7 +139,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/genindex" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/genindex" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -176,6 +176,10 @@
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ipfml/ipfml.filters.noise.html#ipfml.filters.noise.cauchy_noise">cauchy_noise() (in module ipfml.filters.noise)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.coefficient_of_determination">coefficient_of_determination() (in module ipfml.metrics)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -183,7 +187,7 @@
 <h2 id="D">D</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.divide_in_blocks">divide_in_blocks() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.segmentation.html#ipfml.processing.segmentation.divide_in_blocks">divide_in_blocks() (in module ipfml.processing.segmentation)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -191,11 +195,11 @@
 <h2 id="F">F</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.fast_ica_reconstruction">fast_ica_reconstruction() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.reconstruction.html#ipfml.processing.reconstruction.fast_ica">fast_ica() (in module ipfml.processing.reconstruction)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.fusion_images">fusion_images() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.movement.html#ipfml.processing.movement.fusion_images">fusion_images() (in module ipfml.processing.movement)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -205,7 +209,7 @@
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ipfml/ipfml.filters.noise.html#ipfml.filters.noise.gaussian_noise">gaussian_noise() (in module ipfml.filters.noise)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_bits_img">get_bits_img() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_bits_img">get_bits_img() (in module ipfml.processing.transform)</a>
 </li>
       <li><a href="ipfml/ipfml.utils.html#ipfml.utils.get_entropy">get_entropy() (in module ipfml.utils)</a>
 </li>
@@ -217,45 +221,45 @@
 </li>
       <li><a href="ipfml/ipfml.utils.html#ipfml.utils.get_indices_of_lowest_values">get_indices_of_lowest_values() (in module ipfml.utils)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_LAB">get_LAB() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB">get_LAB() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_LAB_a">get_LAB_a() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_a">get_LAB_a() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_LAB_b">get_LAB_b() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_b">get_LAB_b() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_LAB_L">get_LAB_L() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_L">get_LAB_L() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.get_LAB_L_SVD">get_LAB_L_SVD() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_L_SVD">get_LAB_L_SVD() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.get_LAB_L_SVD_s">get_LAB_L_SVD_s() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_L_SVD_s">get_LAB_L_SVD_s() (in module ipfml.processing.transform)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.get_LAB_L_SVD_U">get_LAB_L_SVD_U() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_L_SVD_U">get_LAB_L_SVD_U() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.get_LAB_L_SVD_V">get_LAB_L_SVD_V() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_LAB_L_SVD_V">get_LAB_L_SVD_V() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_low_bits_img">get_low_bits_img() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_low_bits_img">get_low_bits_img() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.get_mscn_coefficients">get_mscn_coefficients() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_mscn_coefficients">get_mscn_coefficients() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_SVD">get_SVD() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD">get_SVD() (in module ipfml.processing.compression)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_SVD_s">get_SVD_s() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_s">get_SVD_s() (in module ipfml.processing.compression)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_SVD_U">get_SVD_U() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_U">get_SVD_U() (in module ipfml.processing.compression)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_SVD_V">get_SVD_V() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.compression.html#ipfml.processing.compression.get_SVD_V">get_SVD_V() (in module ipfml.processing.compression)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_XYZ">get_XYZ() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_XYZ">get_XYZ() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_XYZ_X">get_XYZ_X() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_XYZ_X">get_XYZ_X() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_XYZ_Y">get_XYZ_Y() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_XYZ_Y">get_XYZ_Y() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.get_XYZ_Z">get_XYZ_Z() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.get_XYZ_Z">get_XYZ_Z() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.metrics.html#ipfml.metrics.gray_to_mscn">gray_to_mscn() (in module ipfml.metrics)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.gray_to_mscn">gray_to_mscn() (in module ipfml.processing.transform)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -267,19 +271,27 @@
 </li>
       <li><a href="ipfml/ipfml.utils.html#ipfml.utils.integral_area_trapz">integral_area_trapz() (in module ipfml.utils)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.ipca_reconstruction">ipca_reconstruction() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.reconstruction.html#ipfml.processing.reconstruction.ipca">ipca() (in module ipfml.processing.reconstruction)</a>
 </li>
       <li><a href="ipfml/ipfml.exceptions.html#module-ipfml.exceptions">ipfml.exceptions (module)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ipfml/ipfml.filters.noise.html#module-ipfml.filters.noise">ipfml.filters.noise (module)</a>
 </li>
       <li><a href="ipfml/ipfml.iqa.fr.html#module-ipfml.iqa.fr">ipfml.iqa.fr (module)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ipfml/ipfml.metrics.html#module-ipfml.metrics">ipfml.metrics (module)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#module-ipfml.processing">ipfml.processing (module)</a>
+      <li><a href="ipfml/ipfml.processing.compression.html#module-ipfml.processing.compression">ipfml.processing.compression (module)</a>
+</li>
+      <li><a href="ipfml/ipfml.processing.movement.html#module-ipfml.processing.movement">ipfml.processing.movement (module)</a>
+</li>
+      <li><a href="ipfml/ipfml.processing.reconstruction.html#module-ipfml.processing.reconstruction">ipfml.processing.reconstruction (module)</a>
+</li>
+      <li><a href="ipfml/ipfml.processing.segmentation.html#module-ipfml.processing.segmentation">ipfml.processing.segmentation (module)</a>
+</li>
+      <li><a href="ipfml/ipfml.processing.transform.html#module-ipfml.processing.transform">ipfml.processing.transform (module)</a>
 </li>
       <li><a href="ipfml/ipfml.utils.html#module-ipfml.utils">ipfml.utils (module)</a>
 </li>
@@ -343,19 +355,19 @@
 <h2 id="R">R</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.rgb_to_grey_low_bits">rgb_to_grey_low_bits() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.rgb_to_grey_low_bits">rgb_to_grey_low_bits() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.rgb_to_LAB_L_bits">rgb_to_LAB_L_bits() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.rgb_to_LAB_L_bits">rgb_to_LAB_L_bits() (in module ipfml.processing.transform)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.rgb_to_LAB_L_low_bits">rgb_to_LAB_L_low_bits() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.rgb_to_LAB_L_low_bits">rgb_to_LAB_L_low_bits() (in module ipfml.processing.transform)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.rgb_to_mscn">rgb_to_mscn() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.transform.html#ipfml.processing.transform.rgb_to_mscn">rgb_to_mscn() (in module ipfml.processing.transform)</a>
 </li>
       <li><a href="ipfml/ipfml.iqa.fr.html#ipfml.iqa.fr.rmse">rmse() (in module ipfml.iqa.fr)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.rotate_image">rotate_image() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.movement.html#ipfml.processing.movement.rotate_image">rotate_image() (in module ipfml.processing.movement)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -369,7 +381,7 @@
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ipfml/ipfml.iqa.fr.html#ipfml.iqa.fr.ssim">ssim() (in module ipfml.iqa.fr)</a>
 </li>
-      <li><a href="ipfml/ipfml.processing.html#ipfml.processing.svd_reconstruction">svd_reconstruction() (in module ipfml.processing)</a>
+      <li><a href="ipfml/ipfml.processing.reconstruction.html#ipfml.processing.reconstruction.svd">svd() (in module ipfml.processing.reconstruction)</a>
 </li>
   </ul></td>
 </tr></table>

+ 15 - 9
docs/build/html/index.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Image Processing For Machine Learning &mdash; IPFML v0.4.0 documentation</title>
+  <title>Image Processing For Machine Learning &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -47,7 +47,7 @@
           
 
           
-            <a href="#" class="icon icon-home"> IPFML
+            <a href="#" class="icon icon-home"> ipfml
           
 
           
@@ -57,7 +57,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -84,7 +84,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
 </ul>
@@ -101,7 +101,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="#">IPFML</a>
+          <a href="#">ipfml</a>
         
       </nav>
 
@@ -139,7 +139,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/index.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/index.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -168,9 +168,8 @@
 <li class="toctree-l2"><a class="reference internal" href="description.html#how-to-use">How to use ?</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a><ul>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.html#ipfml-filters">ipfml.filters</a><ul>
@@ -181,10 +180,17 @@
 <li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.iqa.fr.html">ipfml.iqa.fr</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.html#ipfml-processing">ipfml.processing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.compression.html">ipfml.processing.compression</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.movement.html">ipfml.processing.movement</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.reconstruction.html">ipfml.processing.reconstruction</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.segmentation.html">ipfml.processing.segmentation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.transform.html">ipfml.processing.transform</a></li>
+</ul>
+</li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="examples.html#metrics-example">Metrics example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="examples.html#processing-example">Processing example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="examples.html#noise-filter-example">Noise filter example</a></li>
 </ul>

+ 47 - 17
docs/build/html/ipfml.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Documentation &mdash; IPFML v0.4.0 documentation</title>
+  <title>Documentation of ipfml &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -48,7 +48,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,9 +85,8 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation</a><ul>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation of ipfml</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml/ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#ipfml-filters">ipfml.filters</a><ul>
@@ -98,6 +97,14 @@
 <li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.iqa.fr.html">ipfml.iqa.fr</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="#ipfml-processing">ipfml.processing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.compression.html">ipfml.processing.compression</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.movement.html">ipfml.processing.movement</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.reconstruction.html">ipfml.processing.reconstruction</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.segmentation.html">ipfml.processing.segmentation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml/ipfml.processing.transform.html">ipfml.processing.transform</a></li>
+</ul>
+</li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
@@ -116,7 +123,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -147,14 +154,14 @@
     
       <li><a href="index.html">Docs</a> &raquo;</li>
         
-      <li>Documentation</li>
+      <li>Documentation of ipfml</li>
     
     
       <li class="wy-breadcrumbs-aside">
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -168,8 +175,8 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="documentation">
-<h1>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h1>
+  <div class="section" id="documentation-of-ipfml">
+<h1>Documentation of ipfml<a class="headerlink" href="#documentation-of-ipfml" title="Permalink to this headline">¶</a></h1>
 <table border="1" class="longtable docutils">
 <colgroup>
 <col width="10%" />
@@ -177,15 +184,12 @@
 </colgroup>
 <tbody valign="top">
 <tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.metrics.html#module-ipfml.metrics" title="ipfml.metrics"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.metrics</span></code></a></td>
-<td>Functions which can be used to extract information from image</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="ipfml/ipfml.processing.html#module-ipfml.processing" title="ipfml.processing"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing</span></code></a></td>
-<td>Functions to quickly extract reduced information from image</td>
+<td>Contains all metrics used for model results comparisons</td>
 </tr>
-<tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.utils.html#module-ipfml.utils" title="ipfml.utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.utils</span></code></a></td>
-<td>Utils functions of ipfml package (array normalization)</td>
+<tr class="row-even"><td><a class="reference internal" href="ipfml/ipfml.utils.html#module-ipfml.utils" title="ipfml.utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.utils</span></code></a></td>
+<td>Utils functions of ipfml package (normalization, integral…)</td>
 </tr>
-<tr class="row-even"><td><a class="reference internal" href="ipfml/ipfml.exceptions.html#module-ipfml.exceptions" title="ipfml.exceptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.exceptions</span></code></a></td>
+<tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.exceptions.html#module-ipfml.exceptions" title="ipfml.exceptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.exceptions</span></code></a></td>
 <td>Module which contains all customs Exceptions used into ipfml package</td>
 </tr>
 </tbody>
@@ -218,6 +222,32 @@
 </tbody>
 </table>
 </div>
+<div class="section" id="ipfml-processing">
+<h2>ipfml.processing<a class="headerlink" href="#ipfml-processing" title="Permalink to this headline">¶</a></h2>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.processing.compression.html#module-ipfml.processing.compression" title="ipfml.processing.compression"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing.compression</span></code></a></td>
+<td>Functions for image compression and extraction</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="ipfml/ipfml.processing.movement.html#module-ipfml.processing.movement" title="ipfml.processing.movement"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing.movement</span></code></a></td>
+<td>All movements that can be applied on image such as rotations, fusions, flips</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.processing.reconstruction.html#module-ipfml.processing.reconstruction" title="ipfml.processing.reconstruction"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing.reconstruction</span></code></a></td>
+<td>Functions for reconstruction process of image using reduction/compression methods</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="ipfml/ipfml.processing.segmentation.html#module-ipfml.processing.segmentation" title="ipfml.processing.segmentation"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing.segmentation</span></code></a></td>
+<td>All segmentation methods applied on images</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="ipfml/ipfml.processing.transform.html#module-ipfml.processing.transform" title="ipfml.processing.transform"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipfml.processing.transform</span></code></a></td>
+<td>Functions which can be used to extract information from image or reduce it</td>
+</tr>
+</tbody>
+</table>
+</div>
 </div>
 
 

+ 8 - 8
docs/build/html/ipfml/ipfml.exceptions.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.exceptions &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.exceptions &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -48,7 +48,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,13 +85,13 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation</a><ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
@@ -110,7 +110,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -141,7 +141,7 @@
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="../ipfml.html">Documentation</a> &raquo;</li>
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
         
       <li>ipfml.exceptions</li>
     
@@ -150,7 +150,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml/ipfml.exceptions.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.exceptions.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         

+ 8 - 8
docs/build/html/ipfml/ipfml.filters.noise.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.filters.noise &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.filters.noise &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -48,7 +48,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,9 +85,8 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation</a><ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a><ul class="current">
@@ -95,6 +94,7 @@
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
@@ -113,7 +113,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -144,7 +144,7 @@
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="../ipfml.html">Documentation</a> &raquo;</li>
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
         
       <li>ipfml.filters.noise</li>
     
@@ -153,7 +153,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml/ipfml.filters.noise.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.filters.noise.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         

+ 10 - 10
docs/build/html/ipfml/ipfml.iqa.fr.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.iqa.fr &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.iqa.fr &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -28,7 +28,7 @@
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="Examples" href="../examples.html" />
+    <link rel="next" title="ipfml.processing.compression" href="ipfml.processing.compression.html" />
     <link rel="prev" title="ipfml.filters.noise" href="ipfml.filters.noise.html" /> 
 
   
@@ -48,7 +48,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,9 +85,8 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation</a><ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
@@ -95,6 +94,7 @@
 <li class="toctree-l3 current"><a class="current reference internal" href="#">ipfml.iqa.fr</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
@@ -113,7 +113,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -144,7 +144,7 @@
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="../ipfml.html">Documentation</a> &raquo;</li>
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
         
       <li>ipfml.iqa.fr</li>
     
@@ -153,7 +153,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml/ipfml.iqa.fr.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.iqa.fr.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -386,7 +386,7 @@
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="../examples.html" class="btn btn-neutral float-right" title="Examples" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="ipfml.processing.compression.html" class="btn btn-neutral float-right" title="ipfml.processing.compression" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="ipfml.filters.noise.html" class="btn btn-neutral" title="ipfml.filters.noise" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

+ 29 - 437
docs/build/html/ipfml/ipfml.metrics.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.metrics &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.metrics &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -28,8 +28,8 @@
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="ipfml.processing" href="ipfml.processing.html" />
-    <link rel="prev" title="Documentation" href="../ipfml.html" /> 
+    <link rel="next" title="ipfml.utils" href="ipfml.utils.html" />
+    <link rel="prev" title="Documentation of ipfml" href="../ipfml.html" /> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -48,7 +48,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,13 +85,13 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation</a><ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
 <li class="toctree-l2 current"><a class="current reference internal" href="#">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
@@ -110,7 +110,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -141,7 +141,7 @@
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="../ipfml.html">Documentation</a> &raquo;</li>
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
         
       <li>ipfml.metrics</li>
     
@@ -150,7 +150,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml/ipfml.metrics.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.metrics.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -166,7 +166,7 @@
             
   <div class="section" id="module-ipfml.metrics">
 <span id="ipfml-metrics"></span><h1>ipfml.metrics<a class="headerlink" href="#module-ipfml.metrics" title="Permalink to this headline">¶</a></h1>
-<p>Functions which can be used to extract information from image</p>
+<p>Contains all metrics used for model results comparisons</p>
 <p class="rubric">Functions</p>
 <table border="1" class="longtable docutils">
 <colgroup>
@@ -174,446 +174,38 @@
 <col width="90%" />
 </colgroup>
 <tbody valign="top">
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_LAB" title="ipfml.metrics.get_LAB"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB</span></code></a>(image)</td>
-<td>Transforms RGB  Image into Lab</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_LAB_L" title="ipfml.metrics.get_LAB_L"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L</span></code></a>(image)</td>
-<td>Transforms RGB Image into Lab and returns L</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_LAB_a" title="ipfml.metrics.get_LAB_a"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_a</span></code></a>(image)</td>
-<td>Transforms RGB Image into LAB and returns a</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_LAB_b" title="ipfml.metrics.get_LAB_b"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_b</span></code></a>(image)</td>
-<td>Transforms RGB Image into LAB and returns b</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_SVD" title="ipfml.metrics.get_SVD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD</span></code></a>(image)</td>
-<td>Transforms Image using SVD compression</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_SVD_U" title="ipfml.metrics.get_SVD_U"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_U</span></code></a>(image)</td>
-<td>Transforms Image into SVD and returns only ‘U’ part</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_SVD_V" title="ipfml.metrics.get_SVD_V"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_V</span></code></a>(image)</td>
-<td>Transforms Image into SVD and returns only ‘V’ part</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_SVD_s" title="ipfml.metrics.get_SVD_s"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_s</span></code></a>(image)</td>
-<td>Transforms Image into SVD and returns only ‘s’ part</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_XYZ" title="ipfml.metrics.get_XYZ"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ</span></code></a>(image)</td>
-<td>Transforms RGB Image into XYZ</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_XYZ_X" title="ipfml.metrics.get_XYZ_X"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_X</span></code></a>(image)</td>
-<td>Transforms RGB Image into XYZ and returns X</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_XYZ_Y" title="ipfml.metrics.get_XYZ_Y"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_Y</span></code></a>(image)</td>
-<td>Transforms RGB Image into XYZ and returns Y</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_XYZ_Z" title="ipfml.metrics.get_XYZ_Z"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_Z</span></code></a>(image)</td>
-<td>Transforms RGB Image into XYZ and returns Z</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.get_bits_img" title="ipfml.metrics.get_bits_img"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_bits_img</span></code></a>(image,&nbsp;interval)</td>
-<td>Returns only bits specified into the interval</td>
-</tr>
-<tr class="row-even"><td><a class="reference internal" href="#ipfml.metrics.get_low_bits_img" title="ipfml.metrics.get_low_bits_img"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_low_bits_img</span></code></a>(image[,&nbsp;nb_bits])</td>
-<td>Returns Image or Numpy array with data information reduced using only low bits</td>
-</tr>
-<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.gray_to_mscn" title="ipfml.metrics.gray_to_mscn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gray_to_mscn</span></code></a>(image)</td>
-<td>Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)</td>
-</tr>
-</tbody>
-</table>
-<dl class="function">
-<dt id="ipfml.metrics.get_LAB">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_LAB</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_LAB"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_LAB" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB  Image into Lab</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Lab information</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">Lab</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">Lab</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_LAB_L">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_LAB_L</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_LAB_L"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_LAB_L" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into Lab and returns L</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The L chanel from Lab information</td>
-</tr>
-</tbody>
-</table>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">L</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB_L</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">L</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_LAB_a">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_LAB_a</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_LAB_a"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_LAB_a" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into LAB and returns a</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The a chanel from Lab information</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB_a</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_LAB_b">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_LAB_b</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_LAB_b"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_LAB_b" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into LAB and returns b</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The b chanel from Lab information</td>
-</tr>
-</tbody>
-</table>
-<p>Usage :</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB_b</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_SVD">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_SVD</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_SVD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_SVD" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms Image using SVD compression</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert into SVD compression</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U, s, V obtained from SVD compression</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_SVD</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
-<span class="go">200</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 3, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_SVD_U">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_SVD_U</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_SVD_U"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_SVD_U" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms Image into SVD and returns only ‘U’ part</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U matrix from SVD compression</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_SVD_U</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_SVD_V">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_SVD_V</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_SVD_V"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_SVD_V" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms Image into SVD and returns only ‘V’ part</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">V matrix obtained from SVD compression</td>
-</tr>
-</tbody>
-</table>
-<p>Usage :</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_SVD_V</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 3, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_SVD_s">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_SVD_s</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_SVD_s"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_SVD_s" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms Image into SVD and returns only ‘s’ part</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">vector of singular values obtained from SVD compression</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_SVD_s</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
-<span class="go">200</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_XYZ">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_XYZ</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_XYZ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_XYZ" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into XYZ</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">XYZ information obtained from transformation</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">metrics</span><span class="o">.</span><span class="n">get_XYZ</span><span class="p">(</span><span class="n">img</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_XYZ_X">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_XYZ_X</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_XYZ_X"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_XYZ_X" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into XYZ and returns X</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The X chanel from XYZ information</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_XYZ_X</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_XYZ_Y">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_XYZ_Y</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_XYZ_Y"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_XYZ_Y" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into XYZ and returns Y</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The Y chanel from XYZ information</td>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.metrics.coefficient_of_determination" title="ipfml.metrics.coefficient_of_determination"><code class="xref py py-obj docutils literal notranslate"><span class="pre">coefficient_of_determination</span></code></a>(y,&nbsp;predicted)</td>
+<td>Returns the coefficient of determination between <cite>y</cite> and <cite>y_predicted</cite> values</td>
 </tr>
 </tbody>
 </table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_XYZ_Y</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_XYZ_Z">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_XYZ_Z</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_XYZ_Z"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_XYZ_Z" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transforms RGB Image into XYZ and returns Z</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The Z chanel from XYZ information</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If <cite>nb_bits</cite> has unexpected value. <cite>nb_bits</cite> needs to be in interval [1, 8].</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_XYZ_Z</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
-</pre></div>
-</div>
-</dd></dl>
-
 <dl class="function">
-<dt id="ipfml.metrics.get_bits_img">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_bits_img</code><span class="sig-paren">(</span><em>image</em>, <em>interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_bits_img"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_bits_img" title="Permalink to this definition">¶</a></dt>
-<dd><p>Returns only bits specified into the interval</p>
+<dt id="ipfml.metrics.coefficient_of_determination">
+<code class="descclassname">ipfml.metrics.</code><code class="descname">coefficient_of_determination</code><span class="sig-paren">(</span><em>y</em>, <em>predicted</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#coefficient_of_determination"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.coefficient_of_determination" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the coefficient of determination between <cite>y</cite> and <cite>y_predicted</cite> values</p>
 <table class="docutils field-list" frame="void" rules="none">
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>image</strong> – image to convert using this interval of bits value to keep</li>
-<li><strong>interval</strong> – (begin, end) of bits values</li>
+<li><strong>y</strong> – array of reference values</li>
+<li><strong>predicted</strong> – array of predicted values</li>
 </ul>
 </td>
 </tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Numpy array with reduced values</p>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">coefficient of determination</p>
 </td>
 </tr>
-<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><ul class="first last simple">
-<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If min value from interval is not &gt;= 1.</li>
-<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If max value from interval is not &lt;= 8.</li>
-<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If min value from interval &gt;= max value.</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_img</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_bits_img</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_img</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.get_low_bits_img">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">get_low_bits_img</code><span class="sig-paren">(</span><em>image</em>, <em>nb_bits=4</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#get_low_bits_img"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.get_low_bits_img" title="Permalink to this definition">¶</a></dt>
-<dd><p>Returns Image or Numpy array with data information reduced using only low bits</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>image</strong> – image to convert</li>
-<li><strong>nb_bits</strong> – optional parameter which indicates the number of bits to keep</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Numpy array with reduced values</p>
-</td>
-</tr>
-</tbody>
-</table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_img</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_low_bits_img</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_img</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200, 3)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-<dl class="function">
-<dt id="ipfml.metrics.gray_to_mscn">
-<code class="descclassname">ipfml.metrics.</code><code class="descname">gray_to_mscn</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/metrics.html#gray_to_mscn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.metrics.gray_to_mscn" title="Permalink to this definition">¶</a></dt>
-<dd><p>Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – grayscale image</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">MSCN matrix obtained from transformation</td>
-</tr>
 </tbody>
 </table>
-<p>Usage:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">get_LAB_L</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">gray_to_mscn</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span><span class="o">.</span><span class="n">shape</span>
-<span class="go">(200, 200)</span>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">metrics</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">predicted</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="o">*</span> <span class="mf">1.05</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">coeff</span> <span class="o">=</span> <span class="n">metrics</span><span class="o">.</span><span class="n">coefficient_of_determination</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">predicted</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">int</span><span class="p">(</span><span class="n">coeff</span><span class="p">)</span>
+<span class="go">1</span>
 </pre></div>
 </div>
 </dd></dl>
@@ -628,10 +220,10 @@
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="ipfml.processing.html" class="btn btn-neutral float-right" title="ipfml.processing" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="ipfml.utils.html" class="btn btn-neutral float-right" title="ipfml.utils" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="../ipfml.html" class="btn btn-neutral" title="Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="../ipfml.html" class="btn btn-neutral" title="Documentation of ipfml" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   

+ 363 - 0
docs/build/html/ipfml/ipfml.processing.compression.html

@@ -0,0 +1,363 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ipfml.processing.compression &mdash; ipfml v0.4.1 documentation</title>
+  
+
+  
+  
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="next" title="ipfml.processing.movement" href="ipfml.processing.movement.html" />
+    <link rel="prev" title="ipfml.iqa.fr" href="ipfml.iqa.fr.html" /> 
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav">
+
+   
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ipfml
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                0.4.1
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal" href="#">ipfml.processing.compression</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.movement.html">ipfml.processing.movement</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.reconstruction.html">ipfml.processing.reconstruction</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.segmentation.html">ipfml.processing.segmentation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.transform.html">ipfml.processing.transform</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" aria-label="top navigation">
+        
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">ipfml</a>
+        
+      </nav>
+
+
+      <div class="wy-nav-content">
+        
+        <div class="rst-content">
+        
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="../index.html">Docs</a> &raquo;</li>
+        
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
+        
+      <li>ipfml.processing.compression</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.processing.compression.rst" class="fa fa-github"> Edit on GitHub</a>
+            
+          
+        
+      </li>
+    
+  </ul>
+
+  
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="module-ipfml.processing.compression">
+<span id="ipfml-processing-compression"></span><h1>ipfml.processing.compression<a class="headerlink" href="#module-ipfml.processing.compression" title="Permalink to this headline">¶</a></h1>
+<p>Functions for image compression and extraction</p>
+<p class="rubric">Functions</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.compression.get_SVD" title="ipfml.processing.compression.get_SVD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD</span></code></a>(image)</td>
+<td>Transforms Image using SVD compression</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.compression.get_SVD_U" title="ipfml.processing.compression.get_SVD_U"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_U</span></code></a>(image)</td>
+<td>Transforms Image into SVD and returns only ‘U’ part</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.compression.get_SVD_V" title="ipfml.processing.compression.get_SVD_V"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_V</span></code></a>(image)</td>
+<td>Transforms Image into SVD and returns only ‘V’ part</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.compression.get_SVD_s" title="ipfml.processing.compression.get_SVD_s"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_SVD_s</span></code></a>(image)</td>
+<td>Transforms Image into SVD and returns only ‘s’ part</td>
+</tr>
+</tbody>
+</table>
+<dl class="function">
+<dt id="ipfml.processing.compression.get_SVD">
+<code class="descclassname">ipfml.processing.compression.</code><code class="descname">get_SVD</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/compression.html#get_SVD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.compression.get_SVD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms Image using SVD compression</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert into SVD compression</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U, s, V obtained from SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">compression</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">compression</span><span class="o">.</span><span class="n">get_SVD</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
+<span class="go">200</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 3, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.compression.get_SVD_U">
+<code class="descclassname">ipfml.processing.compression.</code><code class="descname">get_SVD_U</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/compression.html#get_SVD_U"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.compression.get_SVD_U" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms Image into SVD and returns only ‘U’ part</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U matrix from SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">compression</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span> <span class="o">=</span> <span class="n">compression</span><span class="o">.</span><span class="n">get_SVD_U</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.compression.get_SVD_V">
+<code class="descclassname">ipfml.processing.compression.</code><code class="descname">get_SVD_V</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/compression.html#get_SVD_V"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.compression.get_SVD_V" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms Image into SVD and returns only ‘V’ part</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">V matrix obtained from SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Usage :</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">compression</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span> <span class="o">=</span> <span class="n">compression</span><span class="o">.</span><span class="n">get_SVD_V</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 3, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.compression.get_SVD_s">
+<code class="descclassname">ipfml.processing.compression.</code><code class="descname">get_SVD_s</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/compression.html#get_SVD_s"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.compression.get_SVD_s" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms Image into SVD and returns only ‘s’ part</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">vector of singular values obtained from SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">compression</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">compression</span><span class="o">.</span><span class="n">get_SVD_s</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
+<span class="go">200</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="ipfml.processing.movement.html" class="btn btn-neutral float-right" title="ipfml.processing.movement" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="ipfml.iqa.fr.html" class="btn btn-neutral" title="ipfml.iqa.fr" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2019, Jérôme BUISINE
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../_static/jquery.js"></script>
+        <script type="text/javascript" src="../_static/underscore.js"></script>
+        <script type="text/javascript" src="../_static/doctools.js"></script>
+        <script type="text/javascript" src="../_static/language_data.js"></script>
+    
+
+  
+
+  <script type="text/javascript" src="../_static/js/theme.js"></script>
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 747
docs/build/html/ipfml/ipfml.processing.html


Fichier diff supprimé car celui-ci est trop grand
+ 322 - 0
docs/build/html/ipfml/ipfml.processing.movement.html


+ 350 - 0
docs/build/html/ipfml/ipfml.processing.reconstruction.html

@@ -0,0 +1,350 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ipfml.processing.reconstruction &mdash; ipfml v0.4.1 documentation</title>
+  
+
+  
+  
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="next" title="ipfml.processing.segmentation" href="ipfml.processing.segmentation.html" />
+    <link rel="prev" title="ipfml.processing.movement" href="ipfml.processing.movement.html" /> 
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav">
+
+   
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ipfml
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                0.4.1
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.compression.html">ipfml.processing.compression</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.movement.html">ipfml.processing.movement</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">ipfml.processing.reconstruction</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.segmentation.html">ipfml.processing.segmentation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.transform.html">ipfml.processing.transform</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" aria-label="top navigation">
+        
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">ipfml</a>
+        
+      </nav>
+
+
+      <div class="wy-nav-content">
+        
+        <div class="rst-content">
+        
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="../index.html">Docs</a> &raquo;</li>
+        
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
+        
+      <li>ipfml.processing.reconstruction</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.processing.reconstruction.rst" class="fa fa-github"> Edit on GitHub</a>
+            
+          
+        
+      </li>
+    
+  </ul>
+
+  
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="module-ipfml.processing.reconstruction">
+<span id="ipfml-processing-reconstruction"></span><h1>ipfml.processing.reconstruction<a class="headerlink" href="#module-ipfml.processing.reconstruction" title="Permalink to this headline">¶</a></h1>
+<p>Functions for reconstruction process of image using reduction/compression methods</p>
+<p class="rubric">Functions</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.reconstruction.fast_ica" title="ipfml.processing.reconstruction.fast_ica"><code class="xref py py-obj docutils literal notranslate"><span class="pre">fast_ica</span></code></a>(image,&nbsp;components)</td>
+<td>Reconstruct an image from Fast ICA compression using specific number of components to use</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.reconstruction.ipca" title="ipfml.processing.reconstruction.ipca"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipca</span></code></a>(image,&nbsp;components[,&nbsp;_batch_size])</td>
+<td>Reconstruct an image from IPCA compression using specific number of components to use and batch size</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.reconstruction.svd" title="ipfml.processing.reconstruction.svd"><code class="xref py py-obj docutils literal notranslate"><span class="pre">svd</span></code></a>(image,&nbsp;interval)</td>
+<td>Reconstruct an image from SVD compression using specific interval of Singular Values</td>
+</tr>
+</tbody>
+</table>
+<dl class="function">
+<dt id="ipfml.processing.reconstruction.fast_ica">
+<code class="descclassname">ipfml.processing.reconstruction.</code><code class="descname">fast_ica</code><span class="sig-paren">(</span><em>image</em>, <em>components</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/reconstruction.html#fast_ica"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.reconstruction.fast_ica" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reconstruct an image from Fast ICA compression using specific number of components to use</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – PIL Image, Numpy array or path of 3D image</li>
+<li><strong>components</strong> – Number of components used for reconstruction</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Reconstructed image</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">reconstruction</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">image_values</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span> <span class="o">=</span> <span class="n">reconstruction</span><span class="o">.</span><span class="n">fast_ica</span><span class="p">(</span><span class="n">image_values</span><span class="p">,</span> <span class="mi">25</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.reconstruction.ipca">
+<code class="descclassname">ipfml.processing.reconstruction.</code><code class="descname">ipca</code><span class="sig-paren">(</span><em>image</em>, <em>components</em>, <em>_batch_size=25</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/reconstruction.html#ipca"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.reconstruction.ipca" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reconstruct an image from IPCA compression using specific number of components to use and batch size</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – PIL Image, Numpy array or path of 3D image</li>
+<li><strong>components</strong> – Number of components used for reconstruction</li>
+<li><strong>batch_size</strong> – Batch size used for learn (default 25)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Reconstructed image</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">reconstruction</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">image_values</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span> <span class="o">=</span> <span class="n">reconstruction</span><span class="o">.</span><span class="n">ipca</span><span class="p">(</span><span class="n">image_values</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.reconstruction.svd">
+<code class="descclassname">ipfml.processing.reconstruction.</code><code class="descname">svd</code><span class="sig-paren">(</span><em>image</em>, <em>interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/reconstruction.html#svd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.reconstruction.svd" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reconstruct an image from SVD compression using specific interval of Singular Values</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – PIL Image, Numpy array or path of 3D image</li>
+<li><strong>interval</strong> – Interval used for reconstruction</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Reconstructed image</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">reconstruction</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">image_values</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span> <span class="o">=</span> <span class="n">reconstruction</span><span class="o">.</span><span class="n">svd</span><span class="p">(</span><span class="n">image_values</span><span class="p">,</span> <span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">reconstructed_image</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="ipfml.processing.segmentation.html" class="btn btn-neutral float-right" title="ipfml.processing.segmentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="ipfml.processing.movement.html" class="btn btn-neutral" title="ipfml.processing.movement" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2019, Jérôme BUISINE
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../_static/jquery.js"></script>
+        <script type="text/javascript" src="../_static/underscore.js"></script>
+        <script type="text/javascript" src="../_static/doctools.js"></script>
+        <script type="text/javascript" src="../_static/language_data.js"></script>
+    
+
+  
+
+  <script type="text/javascript" src="../_static/js/theme.js"></script>
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

Fichier diff supprimé car celui-ci est trop grand
+ 296 - 0
docs/build/html/ipfml/ipfml.processing.segmentation.html


+ 852 - 0
docs/build/html/ipfml/ipfml.processing.transform.html

@@ -0,0 +1,852 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ipfml.processing.transform &mdash; ipfml v0.4.1 documentation</title>
+  
+
+  
+  
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="next" title="Examples" href="../examples.html" />
+    <link rel="prev" title="ipfml.processing.segmentation" href="ipfml.processing.segmentation.html" /> 
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav">
+
+   
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ipfml
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                0.4.1
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.utils.html">ipfml.utils</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.compression.html">ipfml.processing.compression</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.movement.html">ipfml.processing.movement</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.reconstruction.html">ipfml.processing.reconstruction</a></li>
+<li class="toctree-l3"><a class="reference internal" href="ipfml.processing.segmentation.html">ipfml.processing.segmentation</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">ipfml.processing.transform</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" aria-label="top navigation">
+        
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">ipfml</a>
+        
+      </nav>
+
+
+      <div class="wy-nav-content">
+        
+        <div class="rst-content">
+        
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="../index.html">Docs</a> &raquo;</li>
+        
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
+        
+      <li>ipfml.processing.transform</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.processing.transform.rst" class="fa fa-github"> Edit on GitHub</a>
+            
+          
+        
+      </li>
+    
+  </ul>
+
+  
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="module-ipfml.processing.transform">
+<span id="ipfml-processing-transform"></span><h1>ipfml.processing.transform<a class="headerlink" href="#module-ipfml.processing.transform" title="Permalink to this headline">¶</a></h1>
+<p>Functions which can be used to extract information from image or reduce it</p>
+<p class="rubric">Functions</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB" title="ipfml.processing.transform.get_LAB"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB</span></code></a>(image)</td>
+<td>Transforms RGB  Image into Lab</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_L" title="ipfml.processing.transform.get_LAB_L"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L</span></code></a>(image)</td>
+<td>Transforms RGB Image into Lab and returns L</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_L_SVD" title="ipfml.processing.transform.get_LAB_L_SVD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L_SVD</span></code></a>(image)</td>
+<td>Returns Singular values from LAB L Image information</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_L_SVD_U" title="ipfml.processing.transform.get_LAB_L_SVD_U"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L_SVD_U</span></code></a>(image)</td>
+<td>Returns U SVD from L of LAB Image information</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_L_SVD_V" title="ipfml.processing.transform.get_LAB_L_SVD_V"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L_SVD_V</span></code></a>(image)</td>
+<td>Returns V SVD from L of LAB Image information</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_L_SVD_s" title="ipfml.processing.transform.get_LAB_L_SVD_s"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_L_SVD_s</span></code></a>(image)</td>
+<td>Returns s (Singular values) SVD from L of LAB Image information</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_a" title="ipfml.processing.transform.get_LAB_a"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_a</span></code></a>(image)</td>
+<td>Transforms RGB Image into LAB and returns a</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_LAB_b" title="ipfml.processing.transform.get_LAB_b"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_LAB_b</span></code></a>(image)</td>
+<td>Transforms RGB Image into LAB and returns b</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_XYZ" title="ipfml.processing.transform.get_XYZ"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ</span></code></a>(image)</td>
+<td>Transforms RGB Image into XYZ</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_XYZ_X" title="ipfml.processing.transform.get_XYZ_X"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_X</span></code></a>(image)</td>
+<td>Transforms RGB Image into XYZ and returns X</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_XYZ_Y" title="ipfml.processing.transform.get_XYZ_Y"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_Y</span></code></a>(image)</td>
+<td>Transforms RGB Image into XYZ and returns Y</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_XYZ_Z" title="ipfml.processing.transform.get_XYZ_Z"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_XYZ_Z</span></code></a>(image)</td>
+<td>Transforms RGB Image into XYZ and returns Z</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_bits_img" title="ipfml.processing.transform.get_bits_img"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_bits_img</span></code></a>(image,&nbsp;interval)</td>
+<td>Returns only bits specified into the interval</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.get_low_bits_img" title="ipfml.processing.transform.get_low_bits_img"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_low_bits_img</span></code></a>(image[,&nbsp;nb_bits])</td>
+<td>Returns Image or Numpy array with data information reduced using only low bits</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.get_mscn_coefficients" title="ipfml.processing.transform.get_mscn_coefficients"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_mscn_coefficients</span></code></a>(image)</td>
+<td>Compute the Mean Substracted Constrast Normalized coefficients of an image</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.gray_to_mscn" title="ipfml.processing.transform.gray_to_mscn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gray_to_mscn</span></code></a>(image)</td>
+<td>Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.rgb_to_LAB_L_bits" title="ipfml.processing.transform.rgb_to_LAB_L_bits"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rgb_to_LAB_L_bits</span></code></a>(image,&nbsp;interval)</td>
+<td>Returns only bits from LAB L canal specified into the interval</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.rgb_to_LAB_L_low_bits" title="ipfml.processing.transform.rgb_to_LAB_L_low_bits"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rgb_to_LAB_L_low_bits</span></code></a>(image[,&nbsp;nb_bits])</td>
+<td>Convert RGB Image into Lab L channel image using only 4 low bits values</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="#ipfml.processing.transform.rgb_to_grey_low_bits" title="ipfml.processing.transform.rgb_to_grey_low_bits"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rgb_to_grey_low_bits</span></code></a>(image[,&nbsp;nb_bits])</td>
+<td>Convert RGB Image into grey image using only 4 low bits values</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="#ipfml.processing.transform.rgb_to_mscn" title="ipfml.processing.transform.rgb_to_mscn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rgb_to_mscn</span></code></a>(image)</td>
+<td>Convert RGB Image into Mean Subtracted Contrast Normalized (MSCN)</td>
+</tr>
+</tbody>
+</table>
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB  Image into Lab</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Lab information</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Lab</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Lab</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_L">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_L</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_L"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_L" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into Lab and returns L</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The L chanel from Lab information</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">L</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">L</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_L_SVD">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_L_SVD</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_L_SVD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_L_SVD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns Singular values from LAB L Image information</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – PIL Image or Numpy array</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U, s, V information obtained from SVD compression using Lab</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">V</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L_SVD</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
+<span class="go">200</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_L_SVD_U">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_L_SVD_U</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_L_SVD_U"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_L_SVD_U" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns U SVD from L of LAB Image information</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – PIL Image or Numpy array</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">U matrix of SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L_SVD_U</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">U</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_L_SVD_V">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_L_SVD_V</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_L_SVD_V"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_L_SVD_V" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns V SVD from L of LAB Image information</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – PIL Image or Numpy array</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">V matrix of SVD compression</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L_SVD_V</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">V</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_L_SVD_s">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_L_SVD_s</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_L_SVD_s"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_L_SVD_s" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns s (Singular values) SVD from L of LAB Image information</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – PIL Image or Numpy array</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">vector of singular values</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L_SVD_s</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
+<span class="go">200</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_a">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_a</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_a"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_a" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into LAB and returns a</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The a chanel from Lab information</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_a</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_LAB_b">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_LAB_b</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_LAB_b"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_LAB_b" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into LAB and returns b</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The b chanel from Lab information</td>
+</tr>
+</tbody>
+</table>
+<p>Usage :</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_b</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_XYZ">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_XYZ</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_XYZ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_XYZ" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into XYZ</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">XYZ information obtained from transformation</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span><span class="o">.</span><span class="n">get_XYZ</span><span class="p">(</span><span class="n">img</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_XYZ_X">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_XYZ_X</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_XYZ_X"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_XYZ_X" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into XYZ and returns X</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The X chanel from XYZ information</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_XYZ_X</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_XYZ_Y">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_XYZ_Y</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_XYZ_Y"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_XYZ_Y" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into XYZ and returns Y</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The Y chanel from XYZ information</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_XYZ_Y</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_XYZ_Z">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_XYZ_Z</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_XYZ_Z"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_XYZ_Z" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms RGB Image into XYZ and returns Z</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – image to convert</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The Z chanel from XYZ information</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If <cite>nb_bits</cite> has unexpected value. <cite>nb_bits</cite> needs to be in interval [1, 8].</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_XYZ_Z</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_bits_img">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_bits_img</code><span class="sig-paren">(</span><em>image</em>, <em>interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_bits_img"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_bits_img" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns only bits specified into the interval</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – image to convert using this interval of bits value to keep</li>
+<li><strong>interval</strong> – (begin, end) of bits values</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Numpy array with reduced values</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><ul class="first last simple">
+<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If min value from interval is not &gt;= 1.</li>
+<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If max value from interval is not &lt;= 8.</li>
+<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If min value from interval &gt;= max value.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_bits_img</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_img</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_low_bits_img">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_low_bits_img</code><span class="sig-paren">(</span><em>image</em>, <em>nb_bits=4</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_low_bits_img"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_low_bits_img" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns Image or Numpy array with data information reduced using only low bits</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – image to convert</li>
+<li><strong>nb_bits</strong> – optional parameter which indicates the number of bits to keep</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Numpy array with reduced values</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_low_bits_img</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_img</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200, 3)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.get_mscn_coefficients">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">get_mscn_coefficients</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#get_mscn_coefficients"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.get_mscn_coefficients" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute the Mean Substracted Constrast Normalized coefficients of an image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>image</strong> – PIL Image, Numpy array or path of image</p>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">MSCN coefficients</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><ul class="first last simple">
+<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code> – If <cite>image</cite> is set as str path and image was not found</li>
+<li><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If <cite>image</cite> numpy shape are not correct</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">image_values</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">mscn_coefficients</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_mscn_coefficients</span><span class="p">(</span><span class="n">image_values</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">mscn_coefficients</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.gray_to_mscn">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">gray_to_mscn</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#gray_to_mscn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.gray_to_mscn" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – grayscale image</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">MSCN matrix obtained from transformation</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">get_LAB_L</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">gray_to_mscn</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.rgb_to_LAB_L_bits">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">rgb_to_LAB_L_bits</code><span class="sig-paren">(</span><em>image</em>, <em>interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#rgb_to_LAB_L_bits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.rgb_to_LAB_L_bits" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns only bits from LAB L canal specified into the interval</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – image to convert using this interval of bits value to keep</li>
+<li><strong>interval</strong> – (begin, end) of bits values</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">2D Numpy array with reduced values</p>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_Lab_l_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_LAB_L_bits</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">bits_Lab_l_img</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.rgb_to_LAB_L_low_bits">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">rgb_to_LAB_L_low_bits</code><span class="sig-paren">(</span><em>image</em>, <em>nb_bits=4</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#rgb_to_LAB_L_low_bits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.rgb_to_LAB_L_low_bits" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert RGB Image into Lab L channel image using only 4 low bits values</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – 3D RGB image Numpy array or PIL RGB image</li>
+<li><strong>nb_bits</strong> – optional parameter which indicates the number of bits to keep (default 4)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">2D Numpy array with low bits information kept</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_Lab_l_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_LAB_L_low_bits</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_Lab_l_img</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.rgb_to_grey_low_bits">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">rgb_to_grey_low_bits</code><span class="sig-paren">(</span><em>image</em>, <em>nb_bits=4</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#rgb_to_grey_low_bits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.rgb_to_grey_low_bits" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert RGB Image into grey image using only 4 low bits values</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>image</strong> – 3D RGB image Numpy array or PIL RGB image</li>
+<li><strong>nb_bits</strong> – optional parameter which indicates the number of bits to keep (default 4)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">2D Numpy array with low bits information kept</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_grey_img</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_grey_low_bits</span><span class="p">(</span><span class="n">img</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">low_bits_grey_img</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="ipfml.processing.transform.rgb_to_mscn">
+<code class="descclassname">ipfml.processing.transform.</code><code class="descname">rgb_to_mscn</code><span class="sig-paren">(</span><em>image</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/ipfml/processing/transform.html#rgb_to_mscn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#ipfml.processing.transform.rgb_to_mscn" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert RGB Image into Mean Subtracted Contrast Normalized (MSCN)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>image</strong> – 3D RGB image Numpy array or PIL RGB image</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">2D Numpy array with MSCN information</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_mscn</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span><span class="o">.</span><span class="n">shape</span>
+<span class="go">(200, 200)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="../examples.html" class="btn btn-neutral float-right" title="Examples" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="ipfml.processing.segmentation.html" class="btn btn-neutral" title="ipfml.processing.segmentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2019, Jérôme BUISINE
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../_static/jquery.js"></script>
+        <script type="text/javascript" src="../_static/underscore.js"></script>
+        <script type="text/javascript" src="../_static/doctools.js"></script>
+        <script type="text/javascript" src="../_static/language_data.js"></script>
+    
+
+  
+
+  <script type="text/javascript" src="../_static/js/theme.js"></script>
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>

+ 14 - 13
docs/build/html/ipfml/ipfml.utils.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>ipfml.utils &mdash; IPFML v0.4.0 documentation</title>
+  <title>ipfml.utils &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -29,7 +29,7 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="next" title="ipfml.exceptions" href="ipfml.exceptions.html" />
-    <link rel="prev" title="ipfml.processing" href="ipfml.processing.html" /> 
+    <link rel="prev" title="ipfml.metrics" href="ipfml.metrics.html" /> 
 
   
   <script src="../_static/js/modernizr.min.js"></script>
@@ -48,7 +48,7 @@
           
 
           
-            <a href="../index.html" class="icon icon-home"> IPFML
+            <a href="../index.html" class="icon icon-home"> ipfml
           
 
           
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -85,13 +85,13 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../description.html">Description</a></li>
-<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation</a><ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="../ipfml.html">Documentation of ipfml</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="ipfml.metrics.html">ipfml.metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="ipfml.processing.html">ipfml.processing</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">ipfml.utils</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ipfml.exceptions.html">ipfml.exceptions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-filters">ipfml.filters</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-iqa">ipfml.iqa</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../ipfml.html#ipfml-processing">ipfml.processing</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li>
@@ -110,7 +110,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../index.html">IPFML</a>
+          <a href="../index.html">ipfml</a>
         
       </nav>
 
@@ -141,7 +141,7 @@
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="../ipfml.html">Documentation</a> &raquo;</li>
+          <li><a href="../ipfml.html">Documentation of ipfml</a> &raquo;</li>
         
       <li>ipfml.utils</li>
     
@@ -150,7 +150,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/ipfml/ipfml.utils.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/ipfml/ipfml.utils.rst" class="fa fa-github"> Edit on GitHub</a>
             
           
         
@@ -166,7 +166,7 @@
             
   <div class="section" id="module-ipfml.utils">
 <span id="ipfml-utils"></span><h1>ipfml.utils<a class="headerlink" href="#module-ipfml.utils" title="Permalink to this headline">¶</a></h1>
-<p>Utils functions of ipfml package (array normalization)</p>
+<p>Utils functions of ipfml package (normalization, integral…)</p>
 <p class="rubric">Functions</p>
 <table border="1" class="longtable docutils">
 <colgroup>
@@ -427,9 +427,10 @@
 </table>
 <p>Example:</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">utils</span><span class="p">,</span> <span class="n">processing</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml</span> <span class="k">import</span> <span class="n">utils</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">ipfml.processing</span> <span class="k">import</span> <span class="n">transform</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;./images/test_img.png&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span> <span class="o">=</span> <span class="n">processing</span><span class="o">.</span><span class="n">rgb_to_mscn</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">img_mscn</span> <span class="o">=</span> <span class="n">transform</span><span class="o">.</span><span class="n">rgb_to_mscn</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">img_normalized</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">normalize_2D_arr</span><span class="p">(</span><span class="n">img_mscn</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">img_normalized</span><span class="o">.</span><span class="n">shape</span>
 <span class="go">(200, 200)</span>
@@ -500,7 +501,7 @@
         <a href="ipfml.exceptions.html" class="btn btn-neutral float-right" title="ipfml.exceptions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="ipfml.processing.html" class="btn btn-neutral" title="ipfml.processing" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="ipfml.metrics.html" class="btn btn-neutral" title="ipfml.metrics" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   

BIN
docs/build/html/objects.inv


+ 26 - 6
docs/build/html/py-modindex.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Python Module Index &mdash; IPFML v0.4.0 documentation</title>
+  <title>Python Module Index &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -49,7 +49,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -86,7 +86,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
 </ul>
@@ -103,7 +103,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -189,7 +189,27 @@
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="ipfml/ipfml.processing.html#module-ipfml.processing"><code class="xref">ipfml.processing</code></a></td><td>
+       <a href="ipfml/ipfml.processing.compression.html#module-ipfml.processing.compression"><code class="xref">ipfml.processing.compression</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="ipfml/ipfml.processing.movement.html#module-ipfml.processing.movement"><code class="xref">ipfml.processing.movement</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="ipfml/ipfml.processing.reconstruction.html#module-ipfml.processing.reconstruction"><code class="xref">ipfml.processing.reconstruction</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="ipfml/ipfml.processing.segmentation.html#module-ipfml.processing.segmentation"><code class="xref">ipfml.processing.segmentation</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="ipfml/ipfml.processing.transform.html#module-ipfml.processing.transform"><code class="xref">ipfml.processing.transform</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>

+ 6 - 6
docs/build/html/search.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Search &mdash; IPFML v0.4.0 documentation</title>
+  <title>Search &mdash; ipfml v0.4.1 documentation</title>
   
 
   
@@ -46,7 +46,7 @@
           
 
           
-            <a href="index.html" class="icon icon-home"> IPFML
+            <a href="index.html" class="icon icon-home"> ipfml
           
 
           
@@ -56,7 +56,7 @@
             
             
               <div class="version">
-                0.4.0
+                0.4.1
               </div>
             
           
@@ -83,7 +83,7 @@
               <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="description.html">Description</a></li>
-<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipfml.html">Documentation of ipfml</a></li>
 <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
 </ul>
@@ -100,7 +100,7 @@
       <nav class="wy-nav-top" aria-label="top navigation">
         
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">IPFML</a>
+          <a href="index.html">ipfml</a>
         
       </nav>
 
@@ -138,7 +138,7 @@
         
             
             
-              <a href="https://github.com/jbuisine/IPFML/blob/master/docs/source/search" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/prise-3d/ipfml/blob/master/docs/source/search" class="fa fa-github"> Edit on GitHub</a>
             
           
         

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
docs/build/html/searchindex.js


+ 1 - 1
docs/index.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html>
 <head>
-    <title>IPFML documentation</title>
+    <title>ipfml documentation</title>
     <meta http-equiv="refresh" content="0; url=./build/html/index.html" />
 </head>
 <body>

+ 11 - 11
docs/source/conf.py

@@ -14,19 +14,19 @@
 #
 import os
 import sys
-sys.path.insert(0, os.path.abspath('../../ipfml'))
+sys.path.insert(0, os.path.abspath('../../../ipfml'))
 
 
 # -- Project information -----------------------------------------------------
 
-project = 'IPFML'
+project = 'ipfml'
 copyright = '2019, Jérôme BUISINE'
 author = 'Jérôme BUISINE'
 
 # The short X.Y version
-version = '0.4.0'
+version = '0.4.1'
 # The full version, including alpha/beta/rc tags
-release = 'v0.4.0'
+release = 'v0.4.1'
 
 
 # -- General configuration ---------------------------------------------------
@@ -111,8 +111,8 @@ html_theme_options = {
 
 html_context = {
   'display_github': True,
-  'github_user': 'jbuisine',
-  'github_repo': 'IPFML',
+  'github_user': 'prise-3d',
+  'github_repo': 'ipfml',
   'github_version': 'master/docs/source/'
 }
 
@@ -134,7 +134,7 @@ html_static_path = ['_static']
 # -- Options for HTMLHelp output ---------------------------------------------
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'IPFMLdoc'
+htmlhelp_basename = 'ipfmldoc'
 
 
 # -- Options for LaTeX output ------------------------------------------------
@@ -161,7 +161,7 @@ latex_elements = {
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'IPFML.tex', 'IPFML Documentation',
+    (master_doc, 'ipfml.tex', 'ipfml Documentation',
      'Jérôme BUISINE', 'manual'),
 ]
 
@@ -171,7 +171,7 @@ latex_documents = [
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    (master_doc, 'ipfml', 'IPFML Documentation',
+    (master_doc, 'ipfml', 'ipfml Documentation',
      [author], 1)
 ]
 
@@ -182,8 +182,8 @@ man_pages = [
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'IPFML', 'IPFML Documentation',
-     author, 'IPFML', 'One line description of project.',
+    (master_doc, 'ipfml', 'ipfml Documentation',
+     author, 'ipfml', 'One line description of project.',
      'Miscellaneous'),
 ]
 

+ 2 - 2
docs/source/description.rst

@@ -23,6 +23,6 @@ To use, simply do :
 .. code:: python
     
    from PIL import Image
-   from ipfml import processing
+   from ipfml.processing import transform
    img = Image.open('path/to/image.png')
-   s = processing.get_LAB_L_SVD_s(img)
+   s = transform.get_LAB_L_SVD_s(img)

+ 2 - 25
docs/source/examples.rst

@@ -7,41 +7,18 @@ All examples below will use this picture.
 
 .. image:: _static/nature.jpg
 
-Metrics example
---------------------
-
-Using **metrics** module you can convert image into Lab, XYZ, SVD...
-
-.. code:: python
-   
-   from PIL import Image
-   from ipfml import metrics
-
-   img_path = 'path/to/image_nature.jpg'
-   img = Image.open(img_path)
-   
-   s = metrics.get_LAB_L(img)
-
-   # convert result into PIL Image
-   output = Image.fromarray(s)
-   output.show()
-
-This is the generated output using only L chanel from Lab.
-
-.. image:: _static/nature_lab_l.png
-
 Processing example
 --------------------
 
 .. code:: python
    
    from PIL import Image
-   from ipfml import processing
+   from ipfml.processing import transform
 
    img_path = 'path/to/image_nature.jpg'
    img = Image.open(img_path)
    
-   low_bits_img = processing.rgb_to_grey_low_bits(img, 6)
+   low_bits_img = transform.rgb_to_grey_low_bits(img, 6)
    
    output = Image.fromarray(low_bits_img)
    output.show()

+ 13 - 5
docs/source/ipfml.rst

@@ -1,13 +1,10 @@
-Documentation
-================
-
+Documentation of ipfml
+======================
 
 .. autosummary::
    :toctree: ipfml
 
    ipfml.metrics
-   ipfml.processing
-   
    ipfml.utils
    ipfml.exceptions  
 
@@ -27,3 +24,14 @@ ipfml.iqa
   
    ipfml.iqa.fr
 
+ipfml.processing
+-------------------
+
+.. autosummary::
+   :toctree: ipfml
+
+   ipfml.processing.compression
+   ipfml.processing.movement
+   ipfml.processing.reconstruction
+   ipfml.processing.segmentation
+   ipfml.processing.transform

+ 1 - 15
docs/source/ipfml/ipfml.metrics.rst

@@ -9,21 +9,7 @@ ipfml.metrics
 
    .. autosummary::
    
-      get_LAB
-      get_LAB_L
-      get_LAB_a
-      get_LAB_b
-      get_SVD
-      get_SVD_U
-      get_SVD_V
-      get_SVD_s
-      get_XYZ
-      get_XYZ_X
-      get_XYZ_Y
-      get_XYZ_Z
-      get_bits_img
-      get_low_bits_img
-      gray_to_mscn
+      coefficient_of_determination
    
    
 

+ 25 - 0
docs/source/ipfml/ipfml.processing.compression.rst

@@ -0,0 +1,25 @@
+ipfml.processing.compression
+============================
+
+.. automodule:: ipfml.processing.compression
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      get_SVD
+      get_SVD_U
+      get_SVD_V
+      get_SVD_s
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 23 - 0
docs/source/ipfml/ipfml.processing.movement.rst

@@ -0,0 +1,23 @@
+ipfml.processing.movement
+=========================
+
+.. automodule:: ipfml.processing.movement
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      fusion_images
+      rotate_image
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 24 - 0
docs/source/ipfml/ipfml.processing.reconstruction.rst

@@ -0,0 +1,24 @@
+ipfml.processing.reconstruction
+===============================
+
+.. automodule:: ipfml.processing.reconstruction
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      fast_ica
+      ipca
+      svd
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 22 - 0
docs/source/ipfml/ipfml.processing.segmentation.rst

@@ -0,0 +1,22 @@
+ipfml.processing.segmentation
+=============================
+
+.. automodule:: ipfml.processing.segmentation
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+   
+      divide_in_blocks
+   
+   
+
+   
+   
+   
+
+   
+   
+   

+ 14 - 9
docs/build/html/_sources/ipfml/ipfml.processing.rst.txt

@@ -1,7 +1,7 @@
-ipfml.processing
-================
+ipfml.processing.transform
+==========================
 
-.. automodule:: ipfml.processing
+.. automodule:: ipfml.processing.transform
 
    
    
@@ -9,21 +9,26 @@ ipfml.processing
 
    .. autosummary::
    
-      divide_in_blocks
-      fast_ica_reconstruction
-      fusion_images
+      get_LAB
+      get_LAB_L
       get_LAB_L_SVD
       get_LAB_L_SVD_U
       get_LAB_L_SVD_V
       get_LAB_L_SVD_s
+      get_LAB_a
+      get_LAB_b
+      get_XYZ
+      get_XYZ_X
+      get_XYZ_Y
+      get_XYZ_Z
+      get_bits_img
+      get_low_bits_img
       get_mscn_coefficients
-      ipca_reconstruction
+      gray_to_mscn
       rgb_to_LAB_L_bits
       rgb_to_LAB_L_low_bits
       rgb_to_grey_low_bits
       rgb_to_mscn
-      rotate_image
-      svd_reconstruction
    
    
 

+ 1 - 2
ipfml/filters/noise.py

@@ -2,11 +2,10 @@
 Noise filters to apply on images
 """
 
+# main imports
 import numpy as np
 import random
 
-from ipfml import processing
-
 
 def _normalise(x):
 

+ 6 - 2
ipfml/iqa/fr.py

@@ -2,10 +2,14 @@
 Full-reference Image Quality Assessment (FR-IQA) methods
 """
 
+# main imports
+import numpy as np
+
+# computations imports
 from skimage.measure import compare_ssim, compare_psnr
-from ipfml.exceptions import NumpyShapeComparisonException
 
-import numpy as np
+# ipfml imports
+from ipfml.exceptions import NumpyShapeComparisonException
 
 
 def _prepare_arrays(img_true, img_test, p_dtype='float32'):

+ 24 - 383
ipfml/metrics.py

@@ -1,402 +1,43 @@
 """
-Functions which can be used to extract information from image
+Contains all metrics used for model results comparisons
 """
 
-from numpy.linalg import svd
-from scipy import misc
-
+# main imports
 import numpy as np
-from sklearn import preprocessing
-from skimage import io, color
-
-import cv2
-
-
-def get_SVD(image):
-    """Transforms Image using SVD compression
-
-    Args:
-        image: image to convert into SVD compression
-
-    Return:
-        U, s, V obtained from SVD compression
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> U, s, V = metrics.get_SVD(img)
-    >>> U.shape
-    (200, 200, 3)
-    >>> len(s)
-    200
-    >>> V.shape
-    (200, 3, 3)
-    """
-    return svd(image, full_matrices=False)
-
-
-def get_SVD_s(image):
-    """Transforms Image into SVD and returns only 's' part
-
-    Args:
-        image: image to convert
-
-    Returns:
-        vector of singular values obtained from SVD compression
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> s = metrics.get_SVD_s(img)
-    >>> len(s)
-    200
-    """
-    U, s, V = svd(image, full_matrices=False)
-    return s
-
-
-def get_SVD_U(image):
-    """Transforms Image into SVD and returns only 'U' part
-
-    Args:
-        image: image to convert
-
-    Returns:
-        U matrix from SVD compression
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> U = metrics.get_SVD_U(img)
-    >>> U.shape
-    (200, 200, 3)
-    """
-
-    U, s, V = svd(image, full_matrices=False)
-    return U
-
-
-def get_SVD_V(image):
-    """Transforms Image into SVD and returns only 'V' part
-
-    Args:
-        image: image to convert
-
-    Returns:
-        V matrix obtained from SVD compression
-
-    Usage :
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> V = metrics.get_SVD_V(img)
-    >>> V.shape
-    (200, 3, 3)
-    """
-
-    U, s, V = svd(image, full_matrices=False)
-    return V
-
-
-def get_LAB(image):
-    """Transforms RGB  Image into Lab
-
-    Args:
-        image: image to convert
-
-    Returns:
-        Lab information
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> Lab = metrics.get_LAB(img)
-    >>> Lab.shape
-    (200, 200, 3)
-    """
-
-    return color.rgb2lab(image)
-
-
-def get_LAB_L(image):
-    """Transforms RGB Image into Lab and returns L
-
-    Args:
-        image: image to convert
-
-    Returns:
-        The L chanel from Lab information
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> L = metrics.get_LAB_L(img)
-    >>> L.shape
-    (200, 200)
-    """
-
-    lab = get_LAB(image)
-    return lab[:, :, 0]
-
-
-def get_LAB_a(image):
-    """Transforms RGB Image into LAB and returns a
-
-    Args:
-        image: image to convert
-
-    Returns:
-        The a chanel from Lab information
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> a = metrics.get_LAB_a(img)
-    >>> a.shape
-    (200, 200)
-    """
-
-    lab = get_LAB(image)
-    return lab[:, :, 1]
-
-
-def get_LAB_b(image):
-    """Transforms RGB Image into LAB and returns b
-
-    Args:
-        image: image to convert
-
-    Returns:
-        The b chanel from Lab information
-
-    Usage :
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> b = metrics.get_LAB_b(img)
-    >>> b.shape
-    (200, 200)
-    """
-
-    lab = get_LAB(image)
-    return lab[:, :, 2]
-
-
-def get_XYZ(image):
-    """Transforms RGB Image into XYZ
-
-    Args:
-        image: image to convert
-
-    Returns:
-        XYZ information obtained from transformation
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> metrics.get_XYZ(img).shape
-    (200, 200, 3)
-    """
-
-    return color.rgb2xyz(image)
-
-
-def get_XYZ_X(image):
-    """Transforms RGB Image into XYZ and returns X
-
-    Args:
-        image: image to convert
-
-    Returns:
-        The X chanel from XYZ information
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> x = metrics.get_XYZ_X(img)
-    >>> x.shape
-    (200, 200)
-    """
-
-    xyz = color.rgb2xyz(image)
-    return xyz[:, :, 0]
-
-
-def get_XYZ_Y(image):
-    """Transforms RGB Image into XYZ and returns Y
-
-    Args:
-        image: image to convert
-
-    Returns:
-        The Y chanel from XYZ information
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> y = metrics.get_XYZ_Y(img)
-    >>> y.shape
-    (200, 200)
-    """
-
-    xyz = color.rgb2xyz(image)
-    return xyz[:, :, 1]
-
 
-def get_XYZ_Z(image):
-    """Transforms RGB Image into XYZ and returns Z
 
-    Args:
-        image: image to convert
-
-    Returns:
-        The Z chanel from XYZ information
-
-    Raises:
-        ValueError: If `nb_bits` has unexpected value. `nb_bits` needs to be in interval [1, 8].
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> z = metrics.get_XYZ_Z(img)
-    >>> z.shape
-    (200, 200)
-    """
-
-    xyz = color.rgb2xyz(image)
-    return xyz[:, :, 2]
-
-
-def get_low_bits_img(image, nb_bits=4):
-    """Returns Image or Numpy array with data information reduced using only low bits
-
-    Args:
-        image: image to convert
-        nb_bits: optional parameter which indicates the number of bits to keep
-
-    Returns:
-        Numpy array with reduced values
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> low_bits_img = metrics.get_low_bits_img(img, 5)
-    >>> low_bits_img.shape
-    (200, 200, 3)
-    """
-
-    if nb_bits <= 0:
-        raise ValueError(
-            "unexpected value of number of bits to keep. @nb_bits needs to be positive and greater than 0."
-        )
-
-    if nb_bits > 8:
-        raise ValueError(
-            "Unexpected value of number of bits to keep. @nb_bits needs to be in interval [1, 8]."
-        )
-
-    img_arr = np.array(image)
-
-    bits_values = sum([pow(2, i - 1) for i in range(1, nb_bits + 1)])
-
-    return img_arr & bits_values
-
-
-def get_bits_img(image, interval):
-    """Returns only bits specified into the interval
+def coefficient_of_determination(y, predicted):
+    """Returns the coefficient of determination between `y` and `y_predicted` values
 
     Args:
-        image: image to convert using this interval of bits value to keep
-        interval: (begin, end) of bits values
+        y: array of reference values
+        predicted: array of predicted values
 
     Returns:
-        Numpy array with reduced values
-
-    Raises:
-        ValueError: If min value from interval is not >= 1.
-        ValueError: If max value from interval is not <= 8.
-        ValueError: If min value from interval >= max value.
+        coefficient of determination
 
-    Usage:
+    Example:
 
-    >>> from PIL import Image
     >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> bits_img = metrics.get_bits_img(img, (2, 5))
-    >>> bits_img.shape
-    (200, 200, 3)
+    >>> import numpy as np
+    >>> y = np.arange(10)
+    >>> predicted = np.arange(10) * 1.05
+    >>> coeff = metrics.coefficient_of_determination(y, predicted)
+    >>> int(coeff)
+    1
     """
 
-    img_arr = np.array(image)
-    begin, end = interval
-
-    if begin < 1:
-        raise ValueError(
-            "Unexpected value of interval. Interval min value needs to be >= 1."
-        )
-
-    if end > 8:
-        raise ValueError(
-            "Unexpected value of interval. Interval min value needs to be <= 8."
-        )
-
-    if begin >= end:
-        raise ValueError("Unexpected interval values order.")
+    y = np.asarray(y)
+    predicted = np.asarray(predicted)
 
-    bits_values = sum([pow(2, i - 1) for i in range(begin, end + 1)])
+    y_mean = y.mean()
 
-    return img_arr & bits_values
-
-
-def gray_to_mscn(image):
-    """Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)
-
-    Args:
-        image: grayscale image
-
-    Returns:
-        MSCN matrix obtained from transformation
-
-    Usage:
-
-    >>> from PIL import Image
-    >>> from ipfml import metrics
-    >>> img = Image.open('./images/test_img.png')
-    >>> img = metrics.get_LAB_L(img)
-    >>> img_mscn = metrics.gray_to_mscn(img)
-    >>> img_mscn.shape
-    (200, 200)
-    """
+    numerator_sum = 0
+    denominator_sum = 0
 
-    s = 7 / 6
-    blurred = cv2.GaussianBlur(image, (7, 7),
-                               s)  # apply gaussian blur to the image
-    blurred_sq = blurred * blurred
-    sigma = cv2.GaussianBlur(image * image, (7, 7), s)
-    sigma = abs(sigma - blurred_sq)**0.5
-    sigma = sigma + 1.0 / 255  # avoid DivideByZero Exception
-    mscn = (image - blurred) / sigma  # MSCN(i, j) image
+    for id_val, val in enumerate(y):
+        numerator_sum += (predicted[id_val] - y_mean) * (
+            predicted[id_val] - y_mean)
+        denominator_sum += (val - y_mean) * (val - y_mean)
 
-    return mscn
+    return numerator_sum / denominator_sum

+ 0 - 582
ipfml/processing.py

@@ -1,582 +0,0 @@
-"""
-Functions to quickly extract reduced information from image
-"""
-
-from PIL import Image
-import random
-
-import cv2
-from skimage import transform, color
-from scipy import signal
-from numpy.linalg import svd
-from sklearn.decomposition import FastICA, IncrementalPCA
-
-import numpy as np
-import ipfml.metrics as metrics
-from ipfml.exceptions import NumpyShapeComparisonException
-
-import os
-
-
-def get_LAB_L_SVD(image):
-    """Returns Singular values from LAB L Image information
-
-    Args:
-        image: PIL Image or Numpy array
-
-    Returns:
-        U, s, V information obtained from SVD compression using Lab
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> U, s, V = processing.get_LAB_L_SVD(img)
-    >>> U.shape
-    (200, 200)
-    >>> len(s)
-    200
-    >>> V.shape
-    (200, 200)
-    """
-    L = metrics.get_LAB_L(image)
-    return metrics.get_SVD(L)
-
-
-def get_LAB_L_SVD_s(image):
-    """Returns s (Singular values) SVD from L of LAB Image information
-
-    Args:
-        image: PIL Image or Numpy array
-
-    Returns:
-        vector of singular values
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> s = processing.get_LAB_L_SVD_s(img)
-    >>> len(s)
-    200
-    """
-    L = metrics.get_LAB_L(image)
-    return metrics.get_SVD_s(L)
-
-
-def get_LAB_L_SVD_U(image):
-    """Returns U SVD from L of LAB Image information
-
-    Args:
-        image: PIL Image or Numpy array
-
-    Returns:
-        U matrix of SVD compression
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> U = processing.get_LAB_L_SVD_U(img)
-    >>> U.shape
-    (200, 200)
-    """
-    L = metrics.get_LAB_L(image)
-    return metrics.get_SVD_U(L)
-
-
-def get_LAB_L_SVD_V(image):
-    """Returns V SVD from L of LAB Image information
-
-    Args:
-        image: PIL Image or Numpy array
-
-    Returns:
-        V matrix of SVD compression
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> V = processing.get_LAB_L_SVD_V(img)
-    >>> V.shape
-    (200, 200)
-    """
-
-    L = metrics.get_LAB_L(image)
-    return metrics.get_SVD_V(L)
-
-
-def rgb_to_mscn(image):
-    """Convert RGB Image into Mean Subtracted Contrast Normalized (MSCN)
-
-    Args:
-        image: 3D RGB image Numpy array or PIL RGB image
-
-    Returns:
-        2D Numpy array with MSCN information
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> img_mscn = processing.rgb_to_mscn(img)
-    >>> img_mscn.shape
-    (200, 200)
-    """
-
-    # check if PIL image or not
-    img_arr = np.array(image)
-
-    # convert rgb image to gray
-    im = np.array(color.rgb2gray(img_arr) * 255, 'uint8')
-
-    return metrics.gray_to_mscn(im)
-
-
-def rgb_to_grey_low_bits(image, nb_bits=4):
-    """Convert RGB Image into grey image using only 4 low bits values
-
-    Args:
-        image: 3D RGB image Numpy array or PIL RGB image
-        nb_bits: optional parameter which indicates the number of bits to keep (default 4)
-
-    Returns:
-        2D Numpy array with low bits information kept
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> low_bits_grey_img = processing.rgb_to_grey_low_bits(img, 5)
-    >>> low_bits_grey_img.shape
-    (200, 200)
-    """
-
-    img_arr = np.array(image)
-    grey_block = np.array(color.rgb2gray(img_arr) * 255, 'uint8')
-
-    return metrics.get_low_bits_img(grey_block, nb_bits)
-
-
-def rgb_to_LAB_L_low_bits(image, nb_bits=4):
-    """Convert RGB Image into Lab L channel image using only 4 low bits values
-
-    Args:
-        image: 3D RGB image Numpy array or PIL RGB image
-        nb_bits: optional parameter which indicates the number of bits to keep (default 4)
-
-    Returns:
-        2D Numpy array with low bits information kept
-
-    Example:
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> low_bits_Lab_l_img = processing.rgb_to_LAB_L_low_bits(img, 5)
-    >>> low_bits_Lab_l_img.shape
-    (200, 200)
-    """
-
-    L_block = np.asarray(metrics.get_LAB_L(image), 'uint8')
-
-    return metrics.get_low_bits_img(L_block, nb_bits)
-
-
-def rgb_to_LAB_L_bits(image, interval):
-    """Returns only bits from LAB L canal specified into the interval
-
-    Args:
-        image: image to convert using this interval of bits value to keep
-        interval: (begin, end) of bits values
-
-    Returns:
-        2D Numpy array with reduced values
-
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> img = Image.open('./images/test_img.png')
-    >>> bits_Lab_l_img = processing.rgb_to_LAB_L_bits(img, (2, 6))
-    >>> bits_Lab_l_img.shape
-    (200, 200)
-    """
-
-    L_block = np.asarray(metrics.get_LAB_L(image), 'uint8')
-
-    return metrics.get_bits_img(L_block, interval)
-
-
-def divide_in_blocks(image, block_size, pil=True):
-    '''Divide image into equal size blocks
-
-    Args:
-        image: PIL Image or Numpy array
-        block: tuple (width, height) representing the size of each dimension of the block
-        pil: block type returned as PIL Image (default True)
-
-    Returns:
-        list containing all 2D Numpy blocks (in RGB or not)
-
-    Raises:
-        ValueError: If `image_width` or `image_height` are not compatible to produce correct block sizes
-
-    Example:
-
-    >>> import numpy as np
-    >>> from PIL import Image
-    >>> from ipfml import processing
-    >>> from ipfml import metrics
-    >>> image_values = np.random.randint(255, size=(800, 800, 3))
-    >>> blocks = divide_in_blocks(image_values, (20, 20))
-    >>> len(blocks)
-    1600
-    >>> blocks[0].width
-    20
-    >>> blocks[0].height
-    20
-    >>> img_l = Image.open('./images/test_img.png')
-    >>> L = metrics.get_LAB_L(img_l)
-    >>> blocks_L = divide_in_blocks(L, (100, 100))
-    >>> len(blocks_L)
-    4
-    >>> blocks_L[0].width
-    100
-    '''
-
-    blocks = []
-    mode = 'RGB'
-
-    # convert in Numpy array
-    image_array = np.array(image)
-
-    # check dimension of input image
-    if image_array.ndim != 3:
-        mode = 'L'
-        image_width, image_height = image_array.shape
-    else:
-        image_width, image_height, _ = image_array.shape
-
-    # check size compatibility
-    width, height = block_size
-
-    if (image_width % width != 0):
-        raise ValueError("Width size issue, block size not compatible")
-
-    if (image_height % height != 0):
-        raise ValueError("Height size issue, block size not compatible")
-
-    nb_block_width = image_width / width
-    nb_block_height = image_height / height
-
-    for i in range(int(nb_block_width)):
-
-        begin_x = i * width
-
-        for j in range(int(nb_block_height)):
-
-            begin_y = j * height
-
-            # getting sub block information
-            current_block = image_array[begin_x:(begin_x + width), begin_y:(
-                begin_y + height)]
-
-            if pil:
-                blocks.append(
-                    Image.fromarray(current_block.astype('uint8'), mode))
-            else:
-                blocks.append(current_block)
-
-    return blocks
-
-
-def fusion_images(images, pil=True):
-    '''Fusion array of images into single image
-
-    Args:
-        images: array of images (PIL Image or Numpy array)
-        pil: block type returned as PIL Image (default True)
-
-    Returns:
-        merged image from array of images
-
-    Raises:
-        ValueError: if `images` is not an array or is empty
-        NumpyShapeComparisonException: if `images` array contains images with different shapes
-
-    Example:
-
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values_1 = np.random.randint(255, size=(800, 800, 3))
-    >>> image_values_2 = np.random.randint(255, size=(800, 800, 3))
-    >>> merged_image = processing.fusion_images([image_values_1, image_values_2], pil=False)
-    >>> merged_image.shape
-    (800, 800, 3)
-    '''
-
-    mode = 'RGB'
-    dim = 1
-
-    if len(images) == 0:
-        raise ValueError('Empty array of images provided...')
-
-    # convert image in numpy array (perhaps not necessary)
-    images = [np.asarray(img) for img in images]
-    image_array = images[0]
-
-    if image_array.ndim != 3:
-        mode = 'L'
-        width, height = image_array.shape
-    else:
-        width, height, dim = image_array.shape
-
-    # raise exception if all images do not have same shape
-    if not np.array([image_array.shape == a.shape for a in images]).all():
-        raise NumpyShapeComparisonException()
-
-    if dim == 1:
-        image_mean = np.empty([width, height])
-    else:
-        image_mean = np.empty([width, height, dim])
-
-    nb_images = len(images)
-
-    # construction of mean image from rotation
-    for i in range(width):
-        for j in range(height):
-
-            if dim == 1:
-                grey_value = 0
-
-                # for each image we merge pixel values
-                for img in images:
-                    grey_value += img[i][j]
-
-                image_mean[i][j] = grey_value / nb_images
-
-            else:
-                for k in range(dim):
-                    canal_value = 0
-
-                    # for each image we merge pixel values
-                    for img in images:
-                        canal_value += img[i][j][k]
-
-                    image_mean[i][j][k] = canal_value / nb_images
-
-    image_mean = np.array(image_mean, 'uint8')
-
-    if pil:
-        return Image.fromarray(image_mean, mode)
-    else:
-        return image_mean
-
-
-def rotate_image(image, angle=90, pil=True):
-    """Rotate image using specific angle
-
-    Args:
-        image: PIL Image or Numpy array
-        angle: Angle value of the rotation
-        pil: block type returned as PIL Image (default True)
-
-    Returns:
-        Image with rotation applied
-
-    Example:
-
-    >>> from PIL import Image
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values = Image.open('./images/test_img.png')
-    >>> rotated_image = processing.rotate_image(image_values, 90, pil=False)
-    >>> rotated_image.shape
-    (200, 200, 3)
-    """
-
-    mode = 'RGB'
-    image_array = np.asarray(image)
-
-    if image_array.ndim != 3:
-        mode = 'L'
-
-    rotated_image = np.array(
-        transform.rotate(image_array, angle) * 255, 'uint8')
-
-    if pil:
-        return Image.fromarray(rotated_image, mode)
-    else:
-        return rotated_image
-
-
-def get_mscn_coefficients(image):
-    """Compute the Mean Substracted Constrast Normalized coefficients of an image
-
-    Args:
-        image: PIL Image, Numpy array or path of image
-
-    Returns:
-        MSCN coefficients
-
-    Raises:
-        FileNotFoundError: If `image` is set as str path and image was not found
-        ValueError: If `image` numpy shape are not correct
-
-    Example:
-
-    >>> from PIL import Image
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values = Image.open('./images/test_img.png')
-    >>> mscn_coefficients = processing.get_mscn_coefficients(image_values)
-    >>> mscn_coefficients.shape
-    (200, 200)
-    """
-
-    if isinstance(image, str):
-        if os.path.exists(image):
-            # open image directly as grey level image
-            imdist = cv2.imread(image, 0)
-        else:
-            raise FileNotFoundError('Image not found in your system')
-
-    elif isinstance(image, np.ndarray):
-        # convert if necessary to grey level numpy array
-        if image.ndim == 2:
-            imdist = image
-        if image.ndim == 3:
-            imdist = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-        else:
-            raise ValueError('Incorrect image shape')
-    else:
-        # if PIL Image
-        image = np.asarray(image)
-
-        if image.ndim == 2:
-            imdist = image
-        if image.ndim == 3:
-            imdist = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-        else:
-            raise ValueError('Incorrect image shape')
-
-    imdist = imdist.astype(np.float64)
-    imdist = imdist / 255.0
-
-    # calculating MSCN coefficients
-    mu = cv2.GaussianBlur(
-        imdist, (7, 7), 7 / 6, borderType=cv2.BORDER_CONSTANT)
-    mu_sq = mu * mu
-    sigma = cv2.GaussianBlur(
-        imdist * imdist, (7, 7), 7 / 6, borderType=cv2.BORDER_CONSTANT)
-    sigma = np.sqrt(abs((sigma - mu_sq)))
-    structdis = (imdist - mu) / (sigma + 1)
-    return structdis
-
-
-def svd_reconstruction(image, interval):
-    """Reconstruct an image from SVD compression using specific interval of Singular Values
-
-    Args:
-        image: PIL Image, Numpy array or path of 3D image
-        interval: Interval used for reconstruction
-
-    Returns:
-        Reconstructed image
-
-    Example:
-
-    >>> from PIL import Image
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values = Image.open('./images/test_img.png')
-    >>> reconstructed_image = processing.svd_reconstruction(image_values, (100, 200))
-    >>> reconstructed_image.shape
-    (200, 200)
-    """
-
-    begin, end = interval
-    lab_img = metrics.get_LAB_L(image)
-    lab_img = np.array(lab_img, 'uint8')
-
-    U, s, V = svd(lab_img, full_matrices=True)
-
-    # reconstruction using specific interval
-    smat = np.zeros((end - begin, end - begin), dtype=complex)
-    smat[:, :] = np.diag(s[begin:end])
-    output_img = np.dot(U[:, begin:end], np.dot(smat, V[begin:end, :]))
-
-    return output_img
-
-
-def fast_ica_reconstruction(image, components):
-    """Reconstruct an image from SVD compression using specific number of components to use
-
-    Args:
-        image: PIL Image, Numpy array or path of 3D image
-        components: Number of components used for reconstruction
-
-    Returns:
-        Reconstructed image
-
-    Example:
-
-    >>> from PIL import Image
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values = Image.open('./images/test_img.png')
-    >>> reconstructed_image = processing.fast_ica_reconstruction(image_values, 25)
-    >>> reconstructed_image.shape
-    (200, 200)
-    """
-
-    lab_img = metrics.get_LAB_L(image)
-    lab_img = np.array(lab_img, 'uint8')
-
-    ica = FastICA(n_components=50)
-    # run ICA on image
-    ica.fit(lab_img)
-    # reconstruct image with independent components
-    image_ica = ica.fit_transform(lab_img)
-    restored_image = ica.inverse_transform(image_ica)
-
-    return restored_image
-
-
-def ipca_reconstruction(image, components, _batch_size=25):
-    """Reconstruct an image from SVD compression using specific number of components to use and batch size
-
-    Args:
-        image: PIL Image, Numpy array or path of 3D image
-        components: Number of components used for reconstruction
-        batch_size: Batch size used for learn (default 25)
-
-    Returns:
-        Reconstructed image
-
-    Example:
-
-    >>> from PIL import Image
-    >>> import numpy as np
-    >>> from ipfml import processing
-    >>> image_values = Image.open('./images/test_img.png')
-    >>> reconstructed_image = processing.ipca_reconstruction(image_values, 20)
-    >>> reconstructed_image.shape
-    (200, 200)
-    """
-    lab_img = metrics.get_LAB_L(image)
-    lab_img = np.array(lab_img, 'uint8')
-
-    transformer = IncrementalPCA(
-        n_components=components, batch_size=_batch_size)
-
-    transformed_image = transformer.fit_transform(lab_img)
-    restored_image = transformer.inverse_transform(transformed_image)
-
-    return restored_image

+ 0 - 0
ipfml/processing/__init__.py


+ 99 - 0
ipfml/processing/compression.py

@@ -0,0 +1,99 @@
+"""
+Functions for image compression and extraction
+"""
+
+# image processing imports
+from numpy.linalg import svd
+
+
+def get_SVD(image):
+    """Transforms Image using SVD compression
+
+    Args:
+        image: image to convert into SVD compression
+
+    Return:
+        U, s, V obtained from SVD compression
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import compression
+    >>> img = Image.open('./images/test_img.png')
+    >>> U, s, V = compression.get_SVD(img)
+    >>> U.shape
+    (200, 200, 3)
+    >>> len(s)
+    200
+    >>> V.shape
+    (200, 3, 3)
+    """
+    return svd(image, full_matrices=False)
+
+
+def get_SVD_s(image):
+    """Transforms Image into SVD and returns only 's' part
+
+    Args:
+        image: image to convert
+
+    Returns:
+        vector of singular values obtained from SVD compression
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import compression
+    >>> img = Image.open('./images/test_img.png')
+    >>> s = compression.get_SVD_s(img)
+    >>> len(s)
+    200
+    """
+    U, s, V = svd(image, full_matrices=False)
+    return s
+
+
+def get_SVD_U(image):
+    """Transforms Image into SVD and returns only 'U' part
+
+    Args:
+        image: image to convert
+
+    Returns:
+        U matrix from SVD compression
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import compression
+    >>> img = Image.open('./images/test_img.png')
+    >>> U = compression.get_SVD_U(img)
+    >>> U.shape
+    (200, 200, 3)
+    """
+
+    U, s, V = svd(image, full_matrices=False)
+    return U
+
+
+def get_SVD_V(image):
+    """Transforms Image into SVD and returns only 'V' part
+
+    Args:
+        image: image to convert
+
+    Returns:
+        V matrix obtained from SVD compression
+
+    Usage :
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import compression
+    >>> img = Image.open('./images/test_img.png')
+    >>> V = compression.get_SVD_V(img)
+    >>> V.shape
+    (200, 3, 3)
+    """
+
+    U, s, V = svd(image, full_matrices=False)
+    return V

+ 133 - 0
ipfml/processing/movement.py

@@ -0,0 +1,133 @@
+"""
+All movements that can be applied on image such as rotations, fusions, flips
+"""
+
+# main imports
+import numpy as np
+
+# image processing imports
+from PIL import Image
+from skimage import transform as sk_transform
+
+# ipfml imports
+from ipfml.exceptions import NumpyShapeComparisonException
+
+
+def fusion_images(images, pil=True):
+    '''Fusion array of images into single image
+
+    Args:
+        images: array of images (PIL Image or Numpy array)
+        pil: block type returned as PIL Image (default True)
+
+    Returns:
+        merged image from array of images
+
+    Raises:
+        ValueError: if `images` is not an array or is empty
+        NumpyShapeComparisonException: if `images` array contains images with different shapes
+
+    Example:
+
+    >>> import numpy as np
+    >>> from ipfml.processing import movement
+    >>> image_values_1 = np.random.randint(255, size=(800, 800, 3))
+    >>> image_values_2 = np.random.randint(255, size=(800, 800, 3))
+    >>> merged_image = movement.fusion_images([image_values_1, image_values_2], pil=False)
+    >>> merged_image.shape
+    (800, 800, 3)
+    '''
+
+    mode = 'RGB'
+    dim = 1
+
+    if len(images) == 0:
+        raise ValueError('Empty array of images provided...')
+
+    # convert image in numpy array (perhaps not necessary)
+    images = [np.asarray(img) for img in images]
+    image_array = images[0]
+
+    if image_array.ndim != 3:
+        mode = 'L'
+        width, height = image_array.shape
+    else:
+        width, height, dim = image_array.shape
+
+    # raise exception if all images do not have same shape
+    if not np.array([image_array.shape == a.shape for a in images]).all():
+        raise NumpyShapeComparisonException()
+
+    if dim == 1:
+        image_mean = np.empty([width, height])
+    else:
+        image_mean = np.empty([width, height, dim])
+
+    nb_images = len(images)
+
+    # construction of mean image from rotation
+    for i in range(width):
+        for j in range(height):
+
+            if dim == 1:
+                grey_value = 0
+
+                # for each image we merge pixel values
+                for img in images:
+                    grey_value += img[i][j]
+
+                image_mean[i][j] = grey_value / nb_images
+
+            else:
+                for k in range(dim):
+                    canal_value = 0
+
+                    # for each image we merge pixel values
+                    for img in images:
+                        canal_value += img[i][j][k]
+
+                    image_mean[i][j][k] = canal_value / nb_images
+
+    image_mean = np.array(image_mean, 'uint8')
+
+    if pil:
+        return Image.fromarray(image_mean, mode)
+    else:
+        return image_mean
+
+
+def rotate_image(image, angle=90, pil=True):
+    """Rotate image using specific angle
+
+    Args:
+        image: PIL Image or Numpy array
+        angle: Angle value of the rotation
+        pil: block type returned as PIL Image (default True)
+
+    Returns:
+        Image with rotation applied
+
+    Example:
+
+    >>> from PIL import Image
+    >>> import numpy as np
+    >>> from ipfml.processing import movement
+    >>> image_values = Image.open('./images/test_img.png')
+    >>> rotated_image = movement.rotate_image(image_values, 90, pil=False)
+    >>> rotated_image.shape
+    (200, 200, 3)
+    """
+
+    mode = 'RGB'
+    image_array = np.asarray(image)
+
+    if image_array.ndim != 3:
+        mode = 'L'
+
+    rotated_image = np.array(
+        sk_transform.rotate(image_array, angle) * 255, 'uint8')
+
+    if pil:
+        return Image.fromarray(rotated_image, mode)
+    else:
+        return rotated_image

+ 115 - 0
ipfml/processing/reconstruction.py

@@ -0,0 +1,115 @@
+"""
+Functions for reconstruction process of image using reduction/compression methods
+"""
+
+# main imports
+import numpy as np
+
+# image processing imports
+from numpy.linalg import svd as np_svd
+from sklearn.decomposition import FastICA, IncrementalPCA
+
+# ipfml imports
+from ipfml.processing import transform
+
+
+def svd(image, interval):
+    """Reconstruct an image from SVD compression using specific interval of Singular Values
+
+    Args:
+        image: PIL Image, Numpy array or path of 3D image
+        interval: Interval used for reconstruction
+
+    Returns:
+        Reconstructed image
+
+    Example:
+
+    >>> from PIL import Image
+    >>> import numpy as np
+    >>> from ipfml.processing import reconstruction
+    >>> image_values = Image.open('./images/test_img.png')
+    >>> reconstructed_image = reconstruction.svd(image_values, (100, 200))
+    >>> reconstructed_image.shape
+    (200, 200)
+    """
+
+    begin, end = interval
+    lab_img = transform.get_LAB_L(image)
+    lab_img = np.array(lab_img, 'uint8')
+
+    U, s, V = np_svd(lab_img, full_matrices=True)
+
+    # reconstruction using specific interval
+    smat = np.zeros((end - begin, end - begin), dtype=complex)
+    smat[:, :] = np.diag(s[begin:end])
+    output_img = np.dot(U[:, begin:end], np.dot(smat, V[begin:end, :]))
+
+    return output_img
+
+
+def fast_ica(image, components):
+    """Reconstruct an image from Fast ICA compression using specific number of components to use
+
+    Args:
+        image: PIL Image, Numpy array or path of 3D image
+        components: Number of components used for reconstruction
+
+    Returns:
+        Reconstructed image
+
+    Example:
+
+    >>> from PIL import Image
+    >>> import numpy as np
+    >>> from ipfml.processing import reconstruction
+    >>> image_values = Image.open('./images/test_img.png')
+    >>> reconstructed_image = reconstruction.fast_ica(image_values, 25)
+    >>> reconstructed_image.shape
+    (200, 200)
+    """
+
+    lab_img = transform.get_LAB_L(image)
+    lab_img = np.array(lab_img, 'uint8')
+
+    ica = FastICA(n_components=50)
+    # run ICA on image
+    ica.fit(lab_img)
+    # reconstruct image with independent components
+    image_ica = ica.fit_transform(lab_img)
+    restored_image = ica.inverse_transform(image_ica)
+
+    return restored_image
+
+
+def ipca(image, components, _batch_size=25):
+    """Reconstruct an image from IPCA compression using specific number of components to use and batch size
+
+    Args:
+        image: PIL Image, Numpy array or path of 3D image
+        components: Number of components used for reconstruction
+        batch_size: Batch size used for learn (default 25)
+
+    Returns:
+        Reconstructed image
+
+    Example:
+
+    >>> from PIL import Image
+    >>> import numpy as np
+    >>> from ipfml.processing import reconstruction
+    >>> image_values = Image.open('./images/test_img.png')
+    >>> reconstructed_image = reconstruction.ipca(image_values, 20)
+    >>> reconstructed_image.shape
+    (200, 200)
+    """
+    lab_img = transform.get_LAB_L(image)
+    lab_img = np.array(lab_img, 'uint8')
+
+    transformer = IncrementalPCA(
+        n_components=components, batch_size=_batch_size)
+
+    transformed_image = transformer.fit_transform(lab_img)
+    restored_image = transformer.inverse_transform(transformed_image)
+
+    return restored_image

+ 91 - 0
ipfml/processing/segmentation.py

@@ -0,0 +1,91 @@
+"""
+All segmentation methods applied on images
+"""
+
+# main imports
+import numpy as np
+
+# image processing imports
+from PIL import Image
+
+
+def divide_in_blocks(image, block_size, pil=True):
+    '''Divide image into equal size blocks
+
+    Args:
+        image: PIL Image or Numpy array
+        block: tuple (width, height) representing the size of each dimension of the block
+        pil: block type returned as PIL Image (default True)
+
+    Returns:
+        list containing all 2D Numpy blocks (in RGB or not)
+
+    Raises:
+        ValueError: If `image_width` or `image_height` are not compatible to produce correct block sizes
+
+    Example:
+
+    >>> import numpy as np
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform, segmentation
+    >>> image_values = np.random.randint(255, size=(800, 800, 3))
+    >>> blocks = segmentation.divide_in_blocks(image_values, (20, 20))
+    >>> len(blocks)
+    1600
+    >>> blocks[0].width
+    20
+    >>> blocks[0].height
+    20
+    >>> img_l = Image.open('./images/test_img.png')
+    >>> L = transform.get_LAB_L(img_l)
+    >>> blocks_L = segmentation.divide_in_blocks(L, (100, 100))
+    >>> len(blocks_L)
+    4
+    >>> blocks_L[0].width
+    100
+    '''
+
+    blocks = []
+    mode = 'RGB'
+
+    # convert in Numpy array
+    image_array = np.array(image)
+
+    # check dimension of input image
+    if image_array.ndim != 3:
+        mode = 'L'
+        image_width, image_height = image_array.shape
+    else:
+        image_width, image_height, _ = image_array.shape
+
+    # check size compatibility
+    width, height = block_size
+
+    if (image_width % width != 0):
+        raise ValueError("Width size issue, block size not compatible")
+
+    if (image_height % height != 0):
+        raise ValueError("Height size issue, block size not compatible")
+
+    nb_block_width = image_width / width
+    nb_block_height = image_height / height
+
+    for i in range(int(nb_block_width)):
+
+        begin_x = i * width
+
+        for j in range(int(nb_block_height)):
+
+            begin_y = j * height
+
+            # getting sub block information
+            current_block = image_array[begin_x:(begin_x + width), begin_y:(
+                begin_y + height)]
+
+            if pil:
+                blocks.append(
+                    Image.fromarray(current_block.astype('uint8'), mode))
+            else:
+                blocks.append(current_block)
+
+    return blocks

+ 575 - 0
ipfml/processing/transform.py

@@ -0,0 +1,575 @@
+"""
+Functions which can be used to extract information from image or reduce it
+"""
+
+# main imports
+import os
+import random
+import numpy as np
+
+# image processing imports
+from numpy.linalg import svd
+from scipy import misc
+from sklearn import preprocessing
+from skimage import io, color
+import cv2
+from PIL import Image
+
+# ipfml imports
+from ipfml.processing import compression
+
+
+def get_LAB(image):
+    """Transforms RGB  Image into Lab
+
+    Args:
+        image: image to convert
+
+    Returns:
+        Lab information
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> Lab = transform.get_LAB(img)
+    >>> Lab.shape
+    (200, 200, 3)
+    """
+
+    return color.rgb2lab(image)
+
+
+def get_LAB_L(image):
+    """Transforms RGB Image into Lab and returns L
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The L chanel from Lab information
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> L = transform.get_LAB_L(img)
+    >>> L.shape
+    (200, 200)
+    """
+
+    lab = get_LAB(image)
+    return lab[:, :, 0]
+
+
+def get_LAB_a(image):
+    """Transforms RGB Image into LAB and returns a
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The a chanel from Lab information
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> a = transform.get_LAB_a(img)
+    >>> a.shape
+    (200, 200)
+    """
+
+    lab = get_LAB(image)
+    return lab[:, :, 1]
+
+
+def get_LAB_b(image):
+    """Transforms RGB Image into LAB and returns b
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The b chanel from Lab information
+
+    Usage :
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> b = transform.get_LAB_b(img)
+    >>> b.shape
+    (200, 200)
+    """
+
+    lab = get_LAB(image)
+    return lab[:, :, 2]
+
+
+def get_XYZ(image):
+    """Transforms RGB Image into XYZ
+
+    Args:
+        image: image to convert
+
+    Returns:
+        XYZ information obtained from transformation
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> transform.get_XYZ(img).shape
+    (200, 200, 3)
+    """
+
+    return color.rgb2xyz(image)
+
+
+def get_XYZ_X(image):
+    """Transforms RGB Image into XYZ and returns X
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The X chanel from XYZ information
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> x = transform.get_XYZ_X(img)
+    >>> x.shape
+    (200, 200)
+    """
+
+    xyz = color.rgb2xyz(image)
+    return xyz[:, :, 0]
+
+
+def get_XYZ_Y(image):
+    """Transforms RGB Image into XYZ and returns Y
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The Y chanel from XYZ information
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> y = transform.get_XYZ_Y(img)
+    >>> y.shape
+    (200, 200)
+    """
+
+    xyz = color.rgb2xyz(image)
+    return xyz[:, :, 1]
+
+
+def get_XYZ_Z(image):
+    """Transforms RGB Image into XYZ and returns Z
+
+    Args:
+        image: image to convert
+
+    Returns:
+        The Z chanel from XYZ information
+
+    Raises:
+        ValueError: If `nb_bits` has unexpected value. `nb_bits` needs to be in interval [1, 8].
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> z = transform.get_XYZ_Z(img)
+    >>> z.shape
+    (200, 200)
+    """
+
+    xyz = color.rgb2xyz(image)
+    return xyz[:, :, 2]
+
+
+def get_low_bits_img(image, nb_bits=4):
+    """Returns Image or Numpy array with data information reduced using only low bits
+
+    Args:
+        image: image to convert
+        nb_bits: optional parameter which indicates the number of bits to keep
+
+    Returns:
+        Numpy array with reduced values
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> low_bits_img = transform.get_low_bits_img(img, 5)
+    >>> low_bits_img.shape
+    (200, 200, 3)
+    """
+
+    if nb_bits <= 0:
+        raise ValueError(
+            "unexpected value of number of bits to keep. @nb_bits needs to be positive and greater than 0."
+        )
+
+    if nb_bits > 8:
+        raise ValueError(
+            "Unexpected value of number of bits to keep. @nb_bits needs to be in interval [1, 8]."
+        )
+
+    img_arr = np.array(image)
+
+    bits_values = sum([pow(2, i - 1) for i in range(1, nb_bits + 1)])
+
+    return img_arr & bits_values
+
+
+def get_bits_img(image, interval):
+    """Returns only bits specified into the interval
+
+    Args:
+        image: image to convert using this interval of bits value to keep
+        interval: (begin, end) of bits values
+
+    Returns:
+        Numpy array with reduced values
+
+    Raises:
+        ValueError: If min value from interval is not >= 1.
+        ValueError: If max value from interval is not <= 8.
+        ValueError: If min value from interval >= max value.
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> bits_img = transform.get_bits_img(img, (2, 5))
+    >>> bits_img.shape
+    (200, 200, 3)
+    """
+
+    img_arr = np.array(image)
+    begin, end = interval
+
+    if begin < 1:
+        raise ValueError(
+            "Unexpected value of interval. Interval min value needs to be >= 1."
+        )
+
+    if end > 8:
+        raise ValueError(
+            "Unexpected value of interval. Interval min value needs to be <= 8."
+        )
+
+    if begin >= end:
+        raise ValueError("Unexpected interval values order.")
+
+    bits_values = sum([pow(2, i - 1) for i in range(begin, end + 1)])
+
+    return img_arr & bits_values
+
+
+def gray_to_mscn(image):
+    """Convert Grayscale Image into Mean Subtracted Contrast Normalized (MSCN)
+
+    Args:
+        image: grayscale image
+
+    Returns:
+        MSCN matrix obtained from transformation
+
+    Usage:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> img = transform.get_LAB_L(img)
+    >>> img_mscn = transform.gray_to_mscn(img)
+    >>> img_mscn.shape
+    (200, 200)
+    """
+
+    s = 7 / 6
+    blurred = cv2.GaussianBlur(image, (7, 7),
+                               s)  # apply gaussian blur to the image
+    blurred_sq = blurred * blurred
+    sigma = cv2.GaussianBlur(image * image, (7, 7), s)
+    sigma = abs(sigma - blurred_sq)**0.5
+    sigma = sigma + 1.0 / 255  # avoid DivideByZero Exception
+    mscn = (image - blurred) / sigma  # MSCN(i, j) image
+
+    return mscn
+
+
+def rgb_to_mscn(image):
+    """Convert RGB Image into Mean Subtracted Contrast Normalized (MSCN)
+
+    Args:
+        image: 3D RGB image Numpy array or PIL RGB image
+
+    Returns:
+        2D Numpy array with MSCN information
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> img_mscn = transform.rgb_to_mscn(img)
+    >>> img_mscn.shape
+    (200, 200)
+    """
+
+    # check if PIL image or not
+    img_arr = np.array(image)
+
+    # convert rgb image to gray
+    im = np.array(color.rgb2gray(img_arr) * 255, 'uint8')
+
+    return gray_to_mscn(im)
+
+
+def get_mscn_coefficients(image):
+    """Compute the Mean Substracted Constrast Normalized coefficients of an image
+
+    Args:
+        image: PIL Image, Numpy array or path of image
+
+    Returns:
+        MSCN coefficients
+
+    Raises:
+        FileNotFoundError: If `image` is set as str path and image was not found
+        ValueError: If `image` numpy shape are not correct
+
+    Example:
+
+    >>> from PIL import Image
+    >>> import numpy as np
+    >>> from ipfml.processing import transform
+    >>> image_values = Image.open('./images/test_img.png')
+    >>> mscn_coefficients = transform.get_mscn_coefficients(image_values)
+    >>> mscn_coefficients.shape
+    (200, 200)
+    """
+
+    if isinstance(image, str):
+        if os.path.exists(image):
+            # open image directly as grey level image
+            imdist = cv2.imread(image, 0)
+        else:
+            raise FileNotFoundError('Image not found in your system')
+
+    elif isinstance(image, np.ndarray):
+        # convert if necessary to grey level numpy array
+        if image.ndim == 2:
+            imdist = image
+        if image.ndim == 3:
+            imdist = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+        else:
+            raise ValueError('Incorrect image shape')
+    else:
+        # if PIL Image
+        image = np.asarray(image)
+
+        if image.ndim == 2:
+            imdist = image
+        if image.ndim == 3:
+            imdist = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+        else:
+            raise ValueError('Incorrect image shape')
+
+    imdist = imdist.astype(np.float64)
+    imdist = imdist / 255.0
+
+    # calculating MSCN coefficients
+    mu = cv2.GaussianBlur(
+        imdist, (7, 7), 7 / 6, borderType=cv2.BORDER_CONSTANT)
+    mu_sq = mu * mu
+    sigma = cv2.GaussianBlur(
+        imdist * imdist, (7, 7), 7 / 6, borderType=cv2.BORDER_CONSTANT)
+    sigma = np.sqrt(abs((sigma - mu_sq)))
+    structdis = (imdist - mu) / (sigma + 1)
+    return structdis
+
+
+def get_LAB_L_SVD(image):
+    """Returns Singular values from LAB L Image information
+
+    Args:
+        image: PIL Image or Numpy array
+
+    Returns:
+        U, s, V information obtained from SVD compression using Lab
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> U, s, V = transform.get_LAB_L_SVD(img)
+    >>> U.shape
+    (200, 200)
+    >>> len(s)
+    200
+    >>> V.shape
+    (200, 200)
+    """
+    L = get_LAB_L(image)
+    return compression.get_SVD(L)
+
+
+def get_LAB_L_SVD_s(image):
+    """Returns s (Singular values) SVD from L of LAB Image information
+
+    Args:
+        image: PIL Image or Numpy array
+
+    Returns:
+        vector of singular values
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> s = transform.get_LAB_L_SVD_s(img)
+    >>> len(s)
+    200
+    """
+    L = get_LAB_L(image)
+    return compression.get_SVD_s(L)
+
+
+def get_LAB_L_SVD_U(image):
+    """Returns U SVD from L of LAB Image information
+
+    Args:
+        image: PIL Image or Numpy array
+
+    Returns:
+        U matrix of SVD compression
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> U = transform.get_LAB_L_SVD_U(img)
+    >>> U.shape
+    (200, 200)
+    """
+    L = get_LAB_L(image)
+    return compression.get_SVD_U(L)
+
+
+def get_LAB_L_SVD_V(image):
+    """Returns V SVD from L of LAB Image information
+
+    Args:
+        image: PIL Image or Numpy array
+
+    Returns:
+        V matrix of SVD compression
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> V = transform.get_LAB_L_SVD_V(img)
+    >>> V.shape
+    (200, 200)
+    """
+
+    L = get_LAB_L(image)
+    return compression.get_SVD_V(L)
+
+
+def rgb_to_grey_low_bits(image, nb_bits=4):
+    """Convert RGB Image into grey image using only 4 low bits values
+
+    Args:
+        image: 3D RGB image Numpy array or PIL RGB image
+        nb_bits: optional parameter which indicates the number of bits to keep (default 4)
+
+    Returns:
+        2D Numpy array with low bits information kept
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> low_bits_grey_img = transform.rgb_to_grey_low_bits(img, 5)
+    >>> low_bits_grey_img.shape
+    (200, 200)
+    """
+
+    img_arr = np.array(image)
+    grey_block = np.array(color.rgb2gray(img_arr) * 255, 'uint8')
+
+    return get_low_bits_img(grey_block, nb_bits)
+
+
+def rgb_to_LAB_L_low_bits(image, nb_bits=4):
+    """Convert RGB Image into Lab L channel image using only 4 low bits values
+
+    Args:
+        image: 3D RGB image Numpy array or PIL RGB image
+        nb_bits: optional parameter which indicates the number of bits to keep (default 4)
+
+    Returns:
+        2D Numpy array with low bits information kept
+
+    Example:
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> low_bits_Lab_l_img = transform.rgb_to_LAB_L_low_bits(img, 5)
+    >>> low_bits_Lab_l_img.shape
+    (200, 200)
+    """
+
+    L_block = np.asarray(get_LAB_L(image), 'uint8')
+
+    return get_low_bits_img(L_block, nb_bits)
+
+
+def rgb_to_LAB_L_bits(image, interval):
+    """Returns only bits from LAB L canal specified into the interval
+
+    Args:
+        image: image to convert using this interval of bits value to keep
+        interval: (begin, end) of bits values
+
+    Returns:
+        2D Numpy array with reduced values
+
+    >>> from PIL import Image
+    >>> from ipfml.processing import transform
+    >>> img = Image.open('./images/test_img.png')
+    >>> bits_Lab_l_img = transform.rgb_to_LAB_L_bits(img, (2, 6))
+    >>> bits_Lab_l_img.shape
+    (200, 200)
+    """
+
+    L_block = np.asarray(get_LAB_L(image), 'uint8')
+
+    return get_bits_img(L_block, interval)

+ 6 - 3
ipfml/utils.py

@@ -1,11 +1,13 @@
 """
-Utils functions of ipfml package (array normalization)
+Utils functions of ipfml package (normalization, integral...)
 """
 
+# main imports
 import numpy as np
 import math
 import sys
 
+# computation imports
 from scipy.integrate import simps
 
 
@@ -84,9 +86,10 @@ def normalize_2D_arr(arr):
     Example:
 
     >>> from PIL import Image
-    >>> from ipfml import utils, processing
+    >>> from ipfml import utils
+    >>> from ipfml.processing import transform
     >>> img = Image.open('./images/test_img.png')
-    >>> img_mscn = processing.rgb_to_mscn(img)
+    >>> img_mscn = transform.rgb_to_mscn(img)
     >>> img_normalized = utils.normalize_2D_arr(img_mscn)
     >>> img_normalized.shape
     (200, 200)

+ 35 - 7
setup.py

@@ -12,18 +12,46 @@ class BuildTestCommand(setuptools.command.build_py.build_py):
 
         # run tests using doctest
         import doctest
-        from ipfml import processing
-        from ipfml import metrics
+        
+        # noise folder
         from ipfml.filters import noise as noise_filters
+        
+        # iqa folder
         from ipfml.iqa import fr as fr_iqa
+
+        # metrics folder
+        from ipfml import metrics
+
+        # processing folder
+        from ipfml.processing import compression as compression_processing
+        from ipfml.processing import movement as movement_processing
+        from ipfml.processing import reconstruction as reconstruction_processing
+        from ipfml.processing import segmentation as segmentation_processing
+        from ipfml.processing import transform as transform_processing
+
+        # utils 
         from ipfml import utils
 
         print("==============================")
         print("Runs test command...")
-        doctest.testmod(processing)
-        doctest.testmod(metrics)
+
+        # noise folder
         doctest.testmod(noise_filters)
+
+        # iqa folder
         doctest.testmod(fr_iqa)
+
+        # metrics folder
+        doctest.testmod(metrics)
+
+        # processing folder
+        doctest.testmod(compression_processing)
+        doctest.testmod(movement_processing)
+        doctest.testmod(reconstruction_processing)
+        doctest.testmod(segmentation_processing)
+        doctest.testmod(transform_processing)
+
+        # utils 
         doctest.testmod(utils)
 
         setuptools.command.build_py.build_py.run(self)
@@ -31,7 +59,7 @@ class BuildTestCommand(setuptools.command.build_py.build_py):
 
 setup(
     name='ipfml',
-    version='0.4.0',
+    version='0.4.1',
     description='Image Processing For Machine Learning',
     long_description=readme(),
     classifiers=[
@@ -40,11 +68,11 @@ setup(
         'Programming Language :: Python :: 3.6',
         'Topic :: Scientific/Engineering :: Artificial Intelligence'
     ],
-    url='https://github.com/jbuisine/IPFML',
+    url='https://github.com/prise-3d/ipfml',
     author='Jérôme BUISINE',
     author_email='jerome.buisine@univ-littoral.fr',
     license='MIT',
-    packages=['ipfml', 'ipfml/filters', 'ipfml/iqa'],
+    packages=['ipfml', 'ipfml/filters', 'ipfml/iqa', 'ipfml/processing'],
     install_requires=[
         'numpy',
         'Pillow',