.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        Click :ref:`here <sphx_glr_download_examples_imaging_contrast_enhancement.py>`     to download the full example code
    .. rst-class:: sphx-glr-example-title

    .. _sphx_glr_examples_imaging_contrast_enhancement.py:


Re-reimplement histogram stretching, matching, and equalization and hist/pdf/cdf
================================================================================

1) Require ip.image
2) Build image histogram, PDF, and CDF blocks
2) Build LUT application block
4) Build a contrast enhancement block
5) Display comparison of original vs equalized

* We should definitely have a more robust block for doing these with pooling too

NOTE: AMONG US ($5 on steam)

First let's import our basic libraries


.. code-block:: default

    import numpy as np
    import matplotlib.pyplot as plt
    import imagepypelines as ip
    ip.require('image')








We'll also need to set up a few blocks


.. code-block:: default


    # A block for computing the histogram, pdf, and cdf of an image
    @ip.blockify()
    def compute_stats(image, bit_depth=8):
        hist, bins = np.histogram(image, bins=np.linspace(0, (2**bit_depth)+1, (2**bit_depth)+1))
        pdf = hist / image.size
        cdf = np.cumsum(pdf)
        return hist, pdf, cdf

    # A quick block for building a histogram equalization look-up table (LUT)
    @ip.blockify()
    def equalization_LUT(image_cdf, bit_depth=8):
        target_cdf = np.cumsum(np.ones(2**bit_depth) / 2**bit_depth)
        lut = np.searchsorted(target_cdf, image_cdf)
        return lut

    # A quick block for applying a LUT to an image
    @ip.blockify()
    def apply_LUT(image, lut):
        return lut[image].astype(image.dtype)

    # A quick block for plotting original versus stretched histograms
    @ip.blockify(batch_type="each", void=True)
    def compare_stats(original, equalized):
        fig = plt.figure()
        plt.plot(np.linspace(0,len(original)-1,len(original)), original, color='r')
        plt.plot(np.linspace(0,len(equalized)-1,len(equalized)), equalized, color='b')
        plt.ion()
        plt.show()

    # stats = compute_stats(ip.image.giza())
    # eq_stats = compute_stats(apply_LUT(ip.image.giza(), equalization_LUT(stats[2])))
    # compare_stats(stats[0], eq_stats[0])

    tasks = {
            # set an entry point for images into the pipeline
            'images': ip.Input(),
            # compute image stats
            ('hists', 'pdfs', 'cdfs'): (compute_stats, 'images'),
            # construct equalization LUT
            'LUTs': (equalization_LUT, 'cdfs'),
            # apply LUT
            'applied': (apply_LUT, 'images', 'LUTs'),
            # Scale the images, cast dtype, and view the stretched images
            # in sequence!
            'safe': (ip.image.DisplaySafe(), 'applied'),
            'viewing' : (ip.image.CompareView(pause_for=1000), 'images','safe'),
            # show graph of hist (red) and eq_hist (blue),
            ('eq_hists', 'eq_pdfs', 'eq_cdfs'): (compute_stats, 'applied'),
            'plotted': (compare_stats, 'hists', 'eq_hists')
            }

    # Pipeline setup
    contrast = ip.Pipeline(tasks)

    # Let's grab some example data from the ImagePypelines standard set
    images = [ip.image.giza(), ip.image.crowd()]

    # And let's see some results!
    contrast(images)



.. rst-class:: sphx-glr-horizontal


    *

      .. image:: /examples/imaging/images/sphx_glr_contrast_enhancement_001.png
          :alt: contrast enhancement
          :class: sphx-glr-multi-img

    *

      .. image:: /examples/imaging/images/sphx_glr_contrast_enhancement_002.png
          :alt: contrast enhancement
          :class: sphx-glr-multi-img

    *

      .. image:: /examples/imaging/images/sphx_glr_contrast_enhancement_003.png
          :alt: Image1, Image2
          :class: sphx-glr-multi-img


.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none


    {'images': [array([[ 76,  90,  97, ...,  81,  82,  78],
           [ 86,  98, 102, ...,  83,  80,  78],
           [ 92, 100, 102, ...,  83,  81,  84],
           ...,
           [142, 143, 140, ...,  77,  73,  73],
           [138, 141, 140, ...,  74,  72,  72],
           [133, 138, 138, ...,  73,  73,  74]], dtype=uint8), array([[ 49,  52,  64, ..., 234, 233, 234],
           [ 48,  48,  56, ..., 212, 211, 211],
           [ 51,  48,  50, ..., 196, 197, 197],
           ...,
           [149, 120,  71, ..., 152, 154, 153],
           [143, 118,  72, ..., 154, 157, 154],
           [144, 118,  72, ..., 154, 157, 153]], dtype=uint8)], 'cdfs': (array([0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           7.62939453e-06, 6.86645508e-05, 3.28063965e-04, 9.95635986e-04,
           2.88391113e-03, 6.70242310e-03, 1.31950378e-02, 2.27241516e-02,
           3.50990295e-02, 5.02586365e-02, 6.70547485e-02, 8.38317871e-02,
           1.01882935e-01, 1.18560791e-01, 1.35112762e-01, 1.51741028e-01,
           1.68613434e-01, 1.85802460e-01, 2.04189301e-01, 2.22629547e-01,
           2.41489410e-01, 2.59677887e-01, 2.77946472e-01, 2.95696259e-01,
           3.12442780e-01, 3.28109741e-01, 3.42876434e-01, 3.56536865e-01,
           3.68343353e-01, 3.78852844e-01, 3.88496399e-01, 3.96915436e-01,
           4.04430389e-01, 4.11140442e-01, 4.17003632e-01, 4.22477722e-01,
           4.27440643e-01, 4.31854248e-01, 4.36115265e-01, 4.40158844e-01,
           4.44313049e-01, 4.48329926e-01, 4.52354431e-01, 4.56317902e-01,
           4.60422516e-01, 4.64336395e-01, 4.68463898e-01, 4.72484589e-01,
           4.76715088e-01, 4.81613159e-01, 4.86938477e-01, 4.92656708e-01,
           4.99130249e-01, 5.06156921e-01, 5.13847351e-01, 5.22331238e-01,
           5.32051086e-01, 5.42472839e-01, 5.54096222e-01, 5.66715240e-01,
           5.80497742e-01, 5.96710205e-01, 6.15402222e-01, 6.37104034e-01,
           6.62498474e-01, 6.92798615e-01, 7.27767944e-01, 7.66807556e-01,
           8.07514191e-01, 8.45321655e-01, 8.78894806e-01, 9.06185150e-01,
           9.27043915e-01, 9.43737030e-01, 9.56184387e-01, 9.65587616e-01,
           9.72805023e-01, 9.78549957e-01, 9.83215332e-01, 9.86648560e-01,
           9.89307404e-01, 9.91191864e-01, 9.92607117e-01, 9.93938446e-01,
           9.94934082e-01, 9.95746613e-01, 9.96395111e-01, 9.96906281e-01,
           9.97459412e-01, 9.97867584e-01, 9.98218536e-01, 9.98508453e-01,
           9.98771667e-01, 9.99023438e-01, 9.99248505e-01, 9.99439240e-01,
           9.99599457e-01, 9.99702454e-01, 9.99786377e-01, 9.99835968e-01,
           9.99885559e-01, 9.99919891e-01, 9.99931335e-01, 9.99931335e-01,
           9.99938965e-01, 9.99946594e-01, 9.99961853e-01, 9.99973297e-01,
           9.99973297e-01, 9.99973297e-01, 9.99973297e-01, 9.99977112e-01,
           9.99977112e-01, 9.99977112e-01, 9.99977112e-01, 9.99980927e-01,
           9.99980927e-01, 9.99980927e-01, 9.99980927e-01, 9.99980927e-01,
           9.99980927e-01, 9.99980927e-01, 9.99980927e-01, 9.99984741e-01,
           9.99984741e-01, 9.99984741e-01, 9.99984741e-01, 9.99984741e-01,
           9.99984741e-01, 9.99984741e-01, 9.99984741e-01, 9.99984741e-01,
           9.99984741e-01, 9.99984741e-01, 9.99988556e-01, 9.99992371e-01,
           9.99992371e-01, 9.99992371e-01, 9.99996185e-01, 9.99996185e-01,
           9.99996185e-01, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,
           1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00]), array([7.62939453e-06, 8.39233398e-05, 1.03378296e-03, 2.67410278e-03,
           4.61578369e-03, 7.00759888e-03, 9.60922241e-03, 1.24397278e-02,
           1.50718689e-02, 1.80282593e-02, 2.10151672e-02, 2.39524841e-02,
           2.69165039e-02, 2.99491882e-02, 3.32183838e-02, 3.65600586e-02,
           3.97529602e-02, 4.31251526e-02, 4.66308594e-02, 5.04226685e-02,
           5.43594360e-02, 5.85479736e-02, 6.30035400e-02, 6.75048828e-02,
           7.19146729e-02, 7.66105652e-02, 8.15925598e-02, 8.65325928e-02,
           9.18769836e-02, 9.74845886e-02, 1.02962494e-01, 1.08413696e-01,
           1.13697052e-01, 1.19312286e-01, 1.25141144e-01, 1.31374359e-01,
           1.37290955e-01, 1.43421173e-01, 1.49600983e-01, 1.55830383e-01,
           1.61674500e-01, 1.67537689e-01, 1.73069000e-01, 1.78520203e-01,
           1.83628082e-01, 1.88991547e-01, 1.94293976e-01, 1.99447632e-01,
           2.04448700e-01, 2.09705353e-01, 2.14908600e-01, 2.20146179e-01,
           2.25357056e-01, 2.30354309e-01, 2.35176086e-01, 2.40211487e-01,
           2.45288849e-01, 2.50213623e-01, 2.55119324e-01, 2.59830475e-01,
           2.64533997e-01, 2.69027710e-01, 2.73799896e-01, 2.78499603e-01,
           2.82978058e-01, 2.87452698e-01, 2.91816711e-01, 2.96138763e-01,
           3.00457001e-01, 3.04851532e-01, 3.09162140e-01, 3.13804626e-01,
           3.18244934e-01, 3.22834015e-01, 3.27445984e-01, 3.32115173e-01,
           3.36814880e-01, 3.41518402e-01, 3.45981598e-01, 3.50891113e-01,
           3.55419159e-01, 3.60439301e-01, 3.65108490e-01, 3.69720459e-01,
           3.74500275e-01, 3.79146576e-01, 3.83934021e-01, 3.88790131e-01,
           3.93707275e-01, 3.98452759e-01, 4.03385162e-01, 4.08435822e-01,
           4.13372040e-01, 4.18487549e-01, 4.23728943e-01, 4.29134369e-01,
           4.34516907e-01, 4.39846039e-01, 4.45327759e-01, 4.50630188e-01,
           4.56283569e-01, 4.61894989e-01, 4.67720032e-01, 4.73541260e-01,
           4.79209900e-01, 4.84771729e-01, 4.90215302e-01, 4.95658875e-01,
           5.01296997e-01, 5.06576538e-01, 5.12187958e-01, 5.17704010e-01,
           5.23181915e-01, 5.28984070e-01, 5.34725189e-01, 5.40309906e-01,
           5.45974731e-01, 5.51845551e-01, 5.57659149e-01, 5.63644409e-01,
           5.69438934e-01, 5.74951172e-01, 5.80570221e-01, 5.86166382e-01,
           5.91663361e-01, 5.97057343e-01, 6.02508545e-01, 6.07891083e-01,
           6.13452911e-01, 6.18892670e-01, 6.24244690e-01, 6.29512787e-01,
           6.35009766e-01, 6.40167236e-01, 6.45484924e-01, 6.50600433e-01,
           6.55735016e-01, 6.61018372e-01, 6.66290283e-01, 6.71585083e-01,
           6.76479340e-01, 6.81430817e-01, 6.86439514e-01, 6.91158295e-01,
           6.95728302e-01, 7.00473785e-01, 7.05165863e-01, 7.09632874e-01,
           7.14134216e-01, 7.18700409e-01, 7.23316193e-01, 7.27523804e-01,
           7.31857300e-01, 7.36133575e-01, 7.40341187e-01, 7.44670868e-01,
           7.48676300e-01, 7.52754211e-01, 7.56847382e-01, 7.60993958e-01,
           7.64934540e-01, 7.69084930e-01, 7.72937775e-01, 7.76760101e-01,
           7.80868530e-01, 7.84839630e-01, 7.88707733e-01, 7.92732239e-01,
           7.96501160e-01, 8.00315857e-01, 8.03997040e-01, 8.07796478e-01,
           8.11660767e-01, 8.15299988e-01, 8.19087982e-01, 8.22780609e-01,
           8.26225281e-01, 8.29616547e-01, 8.33129883e-01, 8.36563110e-01,
           8.39885712e-01, 8.43029022e-01, 8.46160889e-01, 8.49205017e-01,
           8.52466583e-01, 8.55579376e-01, 8.58505249e-01, 8.61431122e-01,
           8.64280701e-01, 8.67221832e-01, 8.70010376e-01, 8.72829437e-01,
           8.75701904e-01, 8.78341675e-01, 8.80954742e-01, 8.83548737e-01,
           8.86196136e-01, 8.88614655e-01, 8.91227722e-01, 8.93577576e-01,
           8.96156311e-01, 8.98548126e-01, 9.00920868e-01, 9.03255463e-01,
           9.05494690e-01, 9.07707214e-01, 9.09881592e-01, 9.11914825e-01,
           9.13944244e-01, 9.15920258e-01, 9.17808533e-01, 9.19857025e-01,
           9.21806335e-01, 9.23728943e-01, 9.25621033e-01, 9.27555084e-01,
           9.29374695e-01, 9.31293488e-01, 9.33284760e-01, 9.34936523e-01,
           9.36653137e-01, 9.38137054e-01, 9.39758301e-01, 9.41333771e-01,
           9.42909241e-01, 9.44480896e-01, 9.45858002e-01, 9.47338104e-01,
           9.48726654e-01, 9.50237274e-01, 9.51595306e-01, 9.53174591e-01,
           9.54685211e-01, 9.56439972e-01, 9.58282471e-01, 9.60494995e-01,
           9.62604523e-01, 9.64817047e-01, 9.66823578e-01, 9.69005585e-01,
           9.71267700e-01, 9.73800659e-01, 9.76142883e-01, 9.78157043e-01,
           9.80022430e-01, 9.81769562e-01, 9.83493805e-01, 9.85118866e-01,
           9.86644745e-01, 9.87827301e-01, 9.89238739e-01, 9.90184784e-01,
           9.91092682e-01, 9.92122650e-01, 1.00000000e+00, 1.00000000e+00])), 'hists': (array([    0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     2,    16,    68,   175,   495,  1001,  1702,  2498,
            3244,  3974,  4403,  4398,  4732,  4372,  4339,  4359,  4423,
            4506,  4820,  4834,  4944,  4768,  4789,  4653,  4390,  4107,
            3871,  3581,  3095,  2755,  2528,  2207,  1970,  1759,  1537,
            1435,  1301,  1157,  1117,  1060,  1089,  1053,  1055,  1039,
            1076,  1026,  1082,  1054,  1109,  1284,  1396,  1499,  1697,
            1842,  2016,  2224,  2548,  2732,  3047,  3308,  3613,  4250,
            4900,  5689,  6657,  7943,  9167, 10234, 10671,  9911,  8801,
            7154,  5468,  4376,  3263,  2465,  1892,  1506,  1223,   900,
             697,   494,   371,   349,   261,   213,   170,   134,   145,
             107,    92,    76,    69,    66,    59,    50,    42,    27,
              22,    13,    13,     9,     3,     0,     2,     2,     4,
               3,     0,     0,     0,     1,     0,     0,     0,     1,
               0,     0,     0,     0,     0,     0,     0,     1,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               1,     1,     0,     0,     1,     0,     0,     1,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0,     0,     0,     0,     0,     0,
               0,     0,     0,     0]), array([   2,   20,  249,  430,  509,  627,  682,  742,  690,  775,  783,
            770,  777,  795,  857,  876,  837,  884,  919,  994, 1032, 1098,
           1168, 1180, 1156, 1231, 1306, 1295, 1401, 1470, 1436, 1429, 1385,
           1472, 1528, 1634, 1551, 1607, 1620, 1633, 1532, 1537, 1450, 1429,
           1339, 1406, 1390, 1351, 1311, 1378, 1364, 1373, 1366, 1310, 1264,
           1320, 1331, 1291, 1286, 1235, 1233, 1178, 1251, 1232, 1174, 1173,
           1144, 1133, 1132, 1152, 1130, 1217, 1164, 1203, 1209, 1224, 1232,
           1233, 1170, 1287, 1187, 1316, 1224, 1209, 1253, 1218, 1255, 1273,
           1289, 1244, 1293, 1324, 1294, 1341, 1374, 1417, 1411, 1397, 1437,
           1390, 1482, 1471, 1527, 1526, 1486, 1458, 1427, 1427, 1478, 1384,
           1471, 1446, 1436, 1521, 1505, 1464, 1485, 1539, 1524, 1569, 1519,
           1445, 1473, 1467, 1441, 1414, 1429, 1411, 1458, 1426, 1403, 1381,
           1441, 1352, 1394, 1341, 1346, 1385, 1382, 1388, 1283, 1298, 1313,
           1237, 1198, 1244, 1230, 1171, 1180, 1197, 1210, 1103, 1136, 1121,
           1103, 1135, 1050, 1069, 1073, 1087, 1033, 1088, 1010, 1002, 1077,
           1041, 1014, 1055,  988, 1000,  965,  996, 1013,  954,  993,  968,
            903,  889,  921,  900,  871,  824,  821,  798,  855,  816,  767,
            767,  747,  771,  731,  739,  753,  692,  685,  680,  694,  634,
            685,  616,  676,  627,  622,  612,  587,  580,  570,  533,  532,
            518,  495,  537,  511,  504,  496,  507,  477,  503,  522,  433,
            450,  389,  425,  413,  413,  412,  361,  388,  364,  396,  356,
            414,  396,  460,  483,  580,  553,  580,  526,  572,  593,  664,
            614,  528,  489,  458,  452,  426,  400,  310,  370,  248,  238,
            270, 2065,    0])), 'pdfs': (array([0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           7.62939453e-06, 6.10351562e-05, 2.59399414e-04, 6.67572021e-04,
           1.88827515e-03, 3.81851196e-03, 6.49261475e-03, 9.52911377e-03,
           1.23748779e-02, 1.51596069e-02, 1.67961121e-02, 1.67770386e-02,
           1.80511475e-02, 1.66778564e-02, 1.65519714e-02, 1.66282654e-02,
           1.68724060e-02, 1.71890259e-02, 1.83868408e-02, 1.84402466e-02,
           1.88598633e-02, 1.81884766e-02, 1.82685852e-02, 1.77497864e-02,
           1.67465210e-02, 1.56669617e-02, 1.47666931e-02, 1.36604309e-02,
           1.18064880e-02, 1.05094910e-02, 9.64355469e-03, 8.41903687e-03,
           7.51495361e-03, 6.71005249e-03, 5.86318970e-03, 5.47409058e-03,
           4.96292114e-03, 4.41360474e-03, 4.26101685e-03, 4.04357910e-03,
           4.15420532e-03, 4.01687622e-03, 4.02450562e-03, 3.96347046e-03,
           4.10461426e-03, 3.91387939e-03, 4.12750244e-03, 4.02069092e-03,
           4.23049927e-03, 4.89807129e-03, 5.32531738e-03, 5.71823120e-03,
           6.47354126e-03, 7.02667236e-03, 7.69042969e-03, 8.48388672e-03,
           9.71984863e-03, 1.04217529e-02, 1.16233826e-02, 1.26190186e-02,
           1.37825012e-02, 1.62124634e-02, 1.86920166e-02, 2.17018127e-02,
           2.53944397e-02, 3.03001404e-02, 3.49693298e-02, 3.90396118e-02,
           4.07066345e-02, 3.78074646e-02, 3.35731506e-02, 2.72903442e-02,
           2.08587646e-02, 1.66931152e-02, 1.24473572e-02, 9.40322876e-03,
           7.21740723e-03, 5.74493408e-03, 4.66537476e-03, 3.43322754e-03,
           2.65884399e-03, 1.88446045e-03, 1.41525269e-03, 1.33132935e-03,
           9.95635986e-04, 8.12530518e-04, 6.48498535e-04, 5.11169434e-04,
           5.53131104e-04, 4.08172607e-04, 3.50952148e-04, 2.89916992e-04,
           2.63214111e-04, 2.51770020e-04, 2.25067139e-04, 1.90734863e-04,
           1.60217285e-04, 1.02996826e-04, 8.39233398e-05, 4.95910645e-05,
           4.95910645e-05, 3.43322754e-05, 1.14440918e-05, 0.00000000e+00,
           7.62939453e-06, 7.62939453e-06, 1.52587891e-05, 1.14440918e-05,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 3.81469727e-06,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 3.81469727e-06,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 3.81469727e-06,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 3.81469727e-06, 3.81469727e-06,
           0.00000000e+00, 0.00000000e+00, 3.81469727e-06, 0.00000000e+00,
           0.00000000e+00, 3.81469727e-06, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
           0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]), array([7.62939453e-06, 7.62939453e-05, 9.49859619e-04, 1.64031982e-03,
           1.94168091e-03, 2.39181519e-03, 2.60162354e-03, 2.83050537e-03,
           2.63214111e-03, 2.95639038e-03, 2.98690796e-03, 2.93731689e-03,
           2.96401978e-03, 3.03268433e-03, 3.26919556e-03, 3.34167480e-03,
           3.19290161e-03, 3.37219238e-03, 3.50570679e-03, 3.79180908e-03,
           3.93676758e-03, 4.18853760e-03, 4.45556641e-03, 4.50134277e-03,
           4.40979004e-03, 4.69589233e-03, 4.98199463e-03, 4.94003296e-03,
           5.34439087e-03, 5.60760498e-03, 5.47790527e-03, 5.45120239e-03,
           5.28335571e-03, 5.61523438e-03, 5.82885742e-03, 6.23321533e-03,
           5.91659546e-03, 6.13021851e-03, 6.17980957e-03, 6.22940063e-03,
           5.84411621e-03, 5.86318970e-03, 5.53131104e-03, 5.45120239e-03,
           5.10787964e-03, 5.36346436e-03, 5.30242920e-03, 5.15365601e-03,
           5.00106812e-03, 5.25665283e-03, 5.20324707e-03, 5.23757935e-03,
           5.21087646e-03, 4.99725342e-03, 4.82177734e-03, 5.03540039e-03,
           5.07736206e-03, 4.92477417e-03, 4.90570068e-03, 4.71115112e-03,
           4.70352173e-03, 4.49371338e-03, 4.77218628e-03, 4.69970703e-03,
           4.47845459e-03, 4.47463989e-03, 4.36401367e-03, 4.32205200e-03,
           4.31823730e-03, 4.39453125e-03, 4.31060791e-03, 4.64248657e-03,
           4.44030762e-03, 4.58908081e-03, 4.61196899e-03, 4.66918945e-03,
           4.69970703e-03, 4.70352173e-03, 4.46319580e-03, 4.90951538e-03,
           4.52804565e-03, 5.02014160e-03, 4.66918945e-03, 4.61196899e-03,
           4.77981567e-03, 4.64630127e-03, 4.78744507e-03, 4.85610962e-03,
           4.91714478e-03, 4.74548340e-03, 4.93240356e-03, 5.05065918e-03,
           4.93621826e-03, 5.11550903e-03, 5.24139404e-03, 5.40542603e-03,
           5.38253784e-03, 5.32913208e-03, 5.48171997e-03, 5.30242920e-03,
           5.65338135e-03, 5.61141968e-03, 5.82504272e-03, 5.82122803e-03,
           5.66864014e-03, 5.56182861e-03, 5.44357300e-03, 5.44357300e-03,
           5.63812256e-03, 5.27954102e-03, 5.61141968e-03, 5.51605225e-03,
           5.47790527e-03, 5.80215454e-03, 5.74111938e-03, 5.58471680e-03,
           5.66482544e-03, 5.87081909e-03, 5.81359863e-03, 5.98526001e-03,
           5.79452515e-03, 5.51223755e-03, 5.61904907e-03, 5.59616089e-03,
           5.49697876e-03, 5.39398193e-03, 5.45120239e-03, 5.38253784e-03,
           5.56182861e-03, 5.43975830e-03, 5.35202026e-03, 5.26809692e-03,
           5.49697876e-03, 5.15747070e-03, 5.31768799e-03, 5.11550903e-03,
           5.13458252e-03, 5.28335571e-03, 5.27191162e-03, 5.29479980e-03,
           4.89425659e-03, 4.95147705e-03, 5.00869751e-03, 4.71878052e-03,
           4.57000732e-03, 4.74548340e-03, 4.69207764e-03, 4.46701050e-03,
           4.50134277e-03, 4.56619263e-03, 4.61578369e-03, 4.20761108e-03,
           4.33349609e-03, 4.27627563e-03, 4.20761108e-03, 4.32968140e-03,
           4.00543213e-03, 4.07791138e-03, 4.09317017e-03, 4.14657593e-03,
           3.94058228e-03, 4.15039062e-03, 3.85284424e-03, 3.82232666e-03,
           4.10842896e-03, 3.97109985e-03, 3.86810303e-03, 4.02450562e-03,
           3.76892090e-03, 3.81469727e-03, 3.68118286e-03, 3.79943848e-03,
           3.86428833e-03, 3.63922119e-03, 3.78799438e-03, 3.69262695e-03,
           3.44467163e-03, 3.39126587e-03, 3.51333618e-03, 3.43322754e-03,
           3.32260132e-03, 3.14331055e-03, 3.13186646e-03, 3.04412842e-03,
           3.26156616e-03, 3.11279297e-03, 2.92587280e-03, 2.92587280e-03,
           2.84957886e-03, 2.94113159e-03, 2.78854370e-03, 2.81906128e-03,
           2.87246704e-03, 2.63977051e-03, 2.61306763e-03, 2.59399414e-03,
           2.64739990e-03, 2.41851807e-03, 2.61306763e-03, 2.34985352e-03,
           2.57873535e-03, 2.39181519e-03, 2.37274170e-03, 2.33459473e-03,
           2.23922729e-03, 2.21252441e-03, 2.17437744e-03, 2.03323364e-03,
           2.02941895e-03, 1.97601318e-03, 1.88827515e-03, 2.04849243e-03,
           1.94931030e-03, 1.92260742e-03, 1.89208984e-03, 1.93405151e-03,
           1.81961060e-03, 1.91879272e-03, 1.99127197e-03, 1.65176392e-03,
           1.71661377e-03, 1.48391724e-03, 1.62124634e-03, 1.57546997e-03,
           1.57546997e-03, 1.57165527e-03, 1.37710571e-03, 1.48010254e-03,
           1.38854980e-03, 1.51062012e-03, 1.35803223e-03, 1.57928467e-03,
           1.51062012e-03, 1.75476074e-03, 1.84249878e-03, 2.21252441e-03,
           2.10952759e-03, 2.21252441e-03, 2.00653076e-03, 2.18200684e-03,
           2.26211548e-03, 2.53295898e-03, 2.34222412e-03, 2.01416016e-03,
           1.86538696e-03, 1.74713135e-03, 1.72424316e-03, 1.62506104e-03,
           1.52587891e-03, 1.18255615e-03, 1.41143799e-03, 9.46044922e-04,
           9.07897949e-04, 1.02996826e-03, 7.87734985e-03, 0.00000000e+00])), 'LUTs': (array([  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
             0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
             0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
             0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
             0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
             0,   0,   0,   0,   1,   3,   5,   8,  12,  17,  21,  26,  30,
            34,  38,  43,  47,  52,  56,  61,  66,  71,  75,  79,  83,  87,
            91,  94,  96,  99, 101, 103, 105, 106, 108, 109, 110, 111, 112,
           113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 126, 127,
           129, 131, 133, 136, 138, 141, 145, 148, 152, 157, 163, 169, 177,
           186, 196, 206, 216, 224, 231, 237, 241, 244, 247, 249, 250, 251,
           252, 253, 253, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
           255, 255, 255, 255, 255, 255, 255, 255, 255]), array([  0,   0,   0,   0,   1,   1,   2,   3,   3,   4,   5,   6,   6,
             7,   8,   9,  10,  11,  11,  12,  13,  14,  16,  17,  18,  19,
            20,  22,  23,  24,  26,  27,  29,  30,  32,  33,  35,  36,  38,
            39,  41,  42,  44,  45,  47,  48,  49,  51,  52,  53,  55,  56,
            57,  58,  60,  61,  62,  64,  65,  66,  67,  68,  70,  71,  72,
            73,  74,  75,  76,  78,  79,  80,  81,  82,  83,  85,  86,  87,
            88,  89,  90,  92,  93,  94,  95,  97,  98,  99, 100, 102, 103,
           104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121,
           122, 124, 125, 126, 128, 129, 131, 132, 133, 135, 136, 138, 139,
           141, 142, 144, 145, 147, 148, 150, 151, 152, 154, 155, 157, 158,
           159, 161, 162, 163, 165, 166, 167, 169, 170, 171, 173, 174, 175,
           176, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190,
           191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
           204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 215,
           216, 217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 224, 225,
           226, 226, 227, 228, 228, 229, 230, 230, 231, 231, 232, 232, 233,
           233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
           240, 240, 240, 241, 241, 242, 242, 242, 243, 243, 244, 244, 244,
           245, 245, 246, 246, 247, 248, 248, 249, 249, 250, 250, 251, 251,
           252, 252, 252, 253, 253, 253, 253, 255, 255])), 'applied': (array([[ 26,  87, 105, ...,  47,  52,  34],
           [ 71, 106, 111, ...,  56,  43,  34],
           [ 94, 109, 111, ...,  56,  47,  61],
           ...,
           [251, 252, 249, ...,  30,  12,  12],
           [244, 250, 249, ...,  17,   8,   8],
           [216, 244, 244, ...,  12,  12,  17]], dtype=uint8), array([[ 53,  57,  72, ..., 245, 244, 245],
           [ 52,  52,  62, ..., 235, 235, 235],
           [ 56,  52,  55, ..., 226, 227, 227],
           ...,
           [183, 145,  80, ..., 187, 189, 188],
           [176, 142,  81, ..., 189, 192, 189],
           [178, 142,  81, ..., 189, 192, 188]], dtype=uint8)), 'safe': (array([[ 26,  87, 105, ...,  47,  52,  34],
           [ 71, 106, 111, ...,  56,  43,  34],
           [ 94, 109, 111, ...,  56,  47,  61],
           ...,
           [251, 252, 249, ...,  30,  12,  12],
           [244, 250, 249, ...,  17,   8,   8],
           [216, 244, 244, ...,  12,  12,  17]], dtype=uint8), array([[ 53,  57,  72, ..., 245, 244, 245],
           [ 52,  52,  62, ..., 235, 235, 235],
           [ 56,  52,  55, ..., 226, 227, 227],
           ...,
           [183, 145,  80, ..., 187, 189, 188],
           [176, 142,  81, ..., 189, 192, 189],
           [178, 142,  81, ..., 189, 192, 188]], dtype=uint8)), 'viewing': (None, None), 'eq_hists': (array([  756,     0,  1001,     0,  1702,     0,     0,  2498,     0,
               0,     0,  3244,     0,     0,     0,     0,  3974,     0,
               0,     0,  4403,     0,     0,     0,     0,  4398,     0,
               0,     0,  4732,     0,     0,     0,  4372,     0,     0,
               0,  4339,     0,     0,     0,     0,  4359,     0,     0,
               0,  4423,     0,     0,     0,     0,  4506,     0,     0,
               0,  4820,     0,     0,     0,     0,  4834,     0,     0,
               0,     0,  4944,     0,     0,     0,     0,  4768,     0,
               0,     0,  4789,     0,     0,     0,  4653,     0,     0,
               0,  4390,     0,     0,     0,  4107,     0,     0,     0,
            3871,     0,     0,  3581,     0,  3095,     0,     0,  2755,
               0,  2528,     0,  2207,     0,  1970,  1759,     0,  1537,
            1435,  1301,  1157,  1117,  1060,  1089,  1053,  1055,  1039,
            1076,  1026,  1082,     0,  1054,  1109,  1284,     0,  1396,
            1499,     0,  1697,     0,  1842,     0,  2016,     0,     0,
            2224,     0,  2548,     0,     0,  2732,     0,     0,     0,
            3047,     0,     0,  3308,     0,     0,     0,  3613,     0,
               0,     0,     0,  4250,     0,     0,     0,     0,     0,
            4900,     0,     0,     0,     0,     0,  5689,     0,     0,
               0,     0,     0,     0,     0,  6657,     0,     0,     0,
               0,     0,     0,     0,     0,  7943,     0,     0,     0,
               0,     0,     0,     0,     0,     0,  9167,     0,     0,
               0,     0,     0,     0,     0,     0,     0, 10234,     0,
               0,     0,     0,     0,     0,     0,     0,     0, 10671,
               0,     0,     0,     0,     0,     0,     0,  9911,     0,
               0,     0,     0,     0,     0,  8801,     0,     0,     0,
               0,     0,  7154,     0,     0,     0,  5468,     0,     0,
            4376,     0,     0,  3263,     0,  2465,  1892,  1506,  1223,
            1597,  1475,  1328,     0]), array([1210,  627, 1424,  690,  775, 1553,  777,  795,  857,  876, 1721,
            919,  994, 1032,    0, 1098, 1168, 1180, 1156, 1231,    0, 1306,
           1295, 1401,    0, 1470, 1436,    0, 1429, 1385,    0, 1472, 1528,
              0, 1634, 1551,    0, 1607, 1620,    0, 1633, 1532,    0, 1537,
           1450,    0, 1429, 1339, 1406,    0, 1390, 1351, 1311,    0, 1378,
           1364, 1373, 1366,    0, 1310, 1264, 1320,    0, 1331, 1291, 1286,
           1235, 1233,    0, 1178, 1251, 1232, 1174, 1173, 1144, 1133,    0,
           1132, 1152, 1130, 1217, 1164, 1203,    0, 1209, 1224, 1232, 1233,
           1170, 1287,    0, 1187, 1316, 1224, 1209,    0, 1253, 1218, 1255,
           1273,    0, 1289, 1244, 1293, 1324,    0, 1294, 1341, 1374,    0,
           1417, 1411,    0, 1397, 1437, 1390,    0, 1482, 1471,    0, 1527,
           1526,    0, 1486, 1458, 1427,    0, 1427, 1478,    0, 1384, 1471,
           1446,    0, 1436, 1521,    0, 1505, 1464,    0, 1485, 1539,    0,
           1524, 1569,    0, 1519, 1445,    0, 1473, 1467, 1441,    0, 1414,
           1429,    0, 1411, 1458, 1426,    0, 1403, 1381, 1441,    0, 1352,
           1394, 1341,    0, 1346, 1385, 1382,    0, 1388, 1283, 1298, 1313,
              0, 1237, 1198, 1244, 1230, 1171, 1180,    0, 1197, 1210, 1103,
           1136, 1121, 1103, 1135, 1050, 1069, 1073, 1087, 1033, 1088, 1010,
           1002, 1077, 1041, 1014, 1055,  988, 1000,  965,  996, 1013,  954,
            993,  968,  903,  889,  921, 1771,  824,  821,  798, 1671,  767,
            767, 1518,  731, 1492,  692, 1365,  694, 1319,  616, 1303, 1234,
           1167, 1103, 1050, 1032, 1015, 1003,  980,  955, 1264,  826, 1161,
            760, 1166,  943, 1133,  580, 1098, 1257, 1142,  947, 1278, 1166,
              0, 2335,    0])), 'eq_pdfs': (array([0.00288391, 0.        , 0.00381851, 0.        , 0.00649261,
           0.        , 0.        , 0.00952911, 0.        , 0.        ,
           0.        , 0.01237488, 0.        , 0.        , 0.        ,
           0.        , 0.01515961, 0.        , 0.        , 0.        ,
           0.01679611, 0.        , 0.        , 0.        , 0.        ,
           0.01677704, 0.        , 0.        , 0.        , 0.01805115,
           0.        , 0.        , 0.        , 0.01667786, 0.        ,
           0.        , 0.        , 0.01655197, 0.        , 0.        ,
           0.        , 0.        , 0.01662827, 0.        , 0.        ,
           0.        , 0.01687241, 0.        , 0.        , 0.        ,
           0.        , 0.01718903, 0.        , 0.        , 0.        ,
           0.01838684, 0.        , 0.        , 0.        , 0.        ,
           0.01844025, 0.        , 0.        , 0.        , 0.        ,
           0.01885986, 0.        , 0.        , 0.        , 0.        ,
           0.01818848, 0.        , 0.        , 0.        , 0.01826859,
           0.        , 0.        , 0.        , 0.01774979, 0.        ,
           0.        , 0.        , 0.01674652, 0.        , 0.        ,
           0.        , 0.01566696, 0.        , 0.        , 0.        ,
           0.01476669, 0.        , 0.        , 0.01366043, 0.        ,
           0.01180649, 0.        , 0.        , 0.01050949, 0.        ,
           0.00964355, 0.        , 0.00841904, 0.        , 0.00751495,
           0.00671005, 0.        , 0.00586319, 0.00547409, 0.00496292,
           0.0044136 , 0.00426102, 0.00404358, 0.00415421, 0.00401688,
           0.00402451, 0.00396347, 0.00410461, 0.00391388, 0.0041275 ,
           0.        , 0.00402069, 0.0042305 , 0.00489807, 0.        ,
           0.00532532, 0.00571823, 0.        , 0.00647354, 0.        ,
           0.00702667, 0.        , 0.00769043, 0.        , 0.        ,
           0.00848389, 0.        , 0.00971985, 0.        , 0.        ,
           0.01042175, 0.        , 0.        , 0.        , 0.01162338,
           0.        , 0.        , 0.01261902, 0.        , 0.        ,
           0.        , 0.0137825 , 0.        , 0.        , 0.        ,
           0.        , 0.01621246, 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.01869202, 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.02170181, 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.02539444, 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.03030014, 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.03496933, 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.03903961, 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.04070663, 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.        , 0.        , 0.03780746, 0.        ,
           0.        , 0.        , 0.        , 0.        , 0.        ,
           0.03357315, 0.        , 0.        , 0.        , 0.        ,
           0.        , 0.02729034, 0.        , 0.        , 0.        ,
           0.02085876, 0.        , 0.        , 0.01669312, 0.        ,
           0.        , 0.01244736, 0.        , 0.00940323, 0.00721741,
           0.00574493, 0.00466537, 0.00609207, 0.00562668, 0.00506592,
           0.        ]), array([0.00461578, 0.00239182, 0.00543213, 0.00263214, 0.00295639,
           0.00592422, 0.00296402, 0.00303268, 0.0032692 , 0.00334167,
           0.00656509, 0.00350571, 0.00379181, 0.00393677, 0.        ,
           0.00418854, 0.00445557, 0.00450134, 0.00440979, 0.00469589,
           0.        , 0.00498199, 0.00494003, 0.00534439, 0.        ,
           0.0056076 , 0.00547791, 0.        , 0.0054512 , 0.00528336,
           0.        , 0.00561523, 0.00582886, 0.        , 0.00623322,
           0.0059166 , 0.        , 0.00613022, 0.00617981, 0.        ,
           0.0062294 , 0.00584412, 0.        , 0.00586319, 0.00553131,
           0.        , 0.0054512 , 0.00510788, 0.00536346, 0.        ,
           0.00530243, 0.00515366, 0.00500107, 0.        , 0.00525665,
           0.00520325, 0.00523758, 0.00521088, 0.        , 0.00499725,
           0.00482178, 0.0050354 , 0.        , 0.00507736, 0.00492477,
           0.0049057 , 0.00471115, 0.00470352, 0.        , 0.00449371,
           0.00477219, 0.00469971, 0.00447845, 0.00447464, 0.00436401,
           0.00432205, 0.        , 0.00431824, 0.00439453, 0.00431061,
           0.00464249, 0.00444031, 0.00458908, 0.        , 0.00461197,
           0.00466919, 0.00469971, 0.00470352, 0.0044632 , 0.00490952,
           0.        , 0.00452805, 0.00502014, 0.00466919, 0.00461197,
           0.        , 0.00477982, 0.0046463 , 0.00478745, 0.00485611,
           0.        , 0.00491714, 0.00474548, 0.0049324 , 0.00505066,
           0.        , 0.00493622, 0.00511551, 0.00524139, 0.        ,
           0.00540543, 0.00538254, 0.        , 0.00532913, 0.00548172,
           0.00530243, 0.        , 0.00565338, 0.00561142, 0.        ,
           0.00582504, 0.00582123, 0.        , 0.00566864, 0.00556183,
           0.00544357, 0.        , 0.00544357, 0.00563812, 0.        ,
           0.00527954, 0.00561142, 0.00551605, 0.        , 0.00547791,
           0.00580215, 0.        , 0.00574112, 0.00558472, 0.        ,
           0.00566483, 0.00587082, 0.        , 0.0058136 , 0.00598526,
           0.        , 0.00579453, 0.00551224, 0.        , 0.00561905,
           0.00559616, 0.00549698, 0.        , 0.00539398, 0.0054512 ,
           0.        , 0.00538254, 0.00556183, 0.00543976, 0.        ,
           0.00535202, 0.0052681 , 0.00549698, 0.        , 0.00515747,
           0.00531769, 0.00511551, 0.        , 0.00513458, 0.00528336,
           0.00527191, 0.        , 0.0052948 , 0.00489426, 0.00495148,
           0.0050087 , 0.        , 0.00471878, 0.00457001, 0.00474548,
           0.00469208, 0.00446701, 0.00450134, 0.        , 0.00456619,
           0.00461578, 0.00420761, 0.0043335 , 0.00427628, 0.00420761,
           0.00432968, 0.00400543, 0.00407791, 0.00409317, 0.00414658,
           0.00394058, 0.00415039, 0.00385284, 0.00382233, 0.00410843,
           0.0039711 , 0.0038681 , 0.00402451, 0.00376892, 0.0038147 ,
           0.00368118, 0.00379944, 0.00386429, 0.00363922, 0.00378799,
           0.00369263, 0.00344467, 0.00339127, 0.00351334, 0.00675583,
           0.00314331, 0.00313187, 0.00304413, 0.00637436, 0.00292587,
           0.00292587, 0.00579071, 0.00278854, 0.00569153, 0.00263977,
           0.00520706, 0.0026474 , 0.00503159, 0.00234985, 0.00497055,
           0.00470734, 0.00445175, 0.00420761, 0.00400543, 0.00393677,
           0.00387192, 0.00382614, 0.0037384 , 0.00364304, 0.00482178,
           0.00315094, 0.00442886, 0.00289917, 0.00444794, 0.00359726,
           0.00432205, 0.00221252, 0.00418854, 0.00479507, 0.00435638,
           0.00361252, 0.00487518, 0.00444794, 0.        , 0.00890732,
           0.        ])), 'eq_cdfs': (array([0.00288391, 0.00288391, 0.00670242, 0.00670242, 0.01319504,
           0.01319504, 0.01319504, 0.02272415, 0.02272415, 0.02272415,
           0.02272415, 0.03509903, 0.03509903, 0.03509903, 0.03509903,
           0.03509903, 0.05025864, 0.05025864, 0.05025864, 0.05025864,
           0.06705475, 0.06705475, 0.06705475, 0.06705475, 0.06705475,
           0.08383179, 0.08383179, 0.08383179, 0.08383179, 0.10188293,
           0.10188293, 0.10188293, 0.10188293, 0.11856079, 0.11856079,
           0.11856079, 0.11856079, 0.13511276, 0.13511276, 0.13511276,
           0.13511276, 0.13511276, 0.15174103, 0.15174103, 0.15174103,
           0.15174103, 0.16861343, 0.16861343, 0.16861343, 0.16861343,
           0.16861343, 0.18580246, 0.18580246, 0.18580246, 0.18580246,
           0.2041893 , 0.2041893 , 0.2041893 , 0.2041893 , 0.2041893 ,
           0.22262955, 0.22262955, 0.22262955, 0.22262955, 0.22262955,
           0.24148941, 0.24148941, 0.24148941, 0.24148941, 0.24148941,
           0.25967789, 0.25967789, 0.25967789, 0.25967789, 0.27794647,
           0.27794647, 0.27794647, 0.27794647, 0.29569626, 0.29569626,
           0.29569626, 0.29569626, 0.31244278, 0.31244278, 0.31244278,
           0.31244278, 0.32810974, 0.32810974, 0.32810974, 0.32810974,
           0.34287643, 0.34287643, 0.34287643, 0.35653687, 0.35653687,
           0.36834335, 0.36834335, 0.36834335, 0.37885284, 0.37885284,
           0.3884964 , 0.3884964 , 0.39691544, 0.39691544, 0.40443039,
           0.41114044, 0.41114044, 0.41700363, 0.42247772, 0.42744064,
           0.43185425, 0.43611526, 0.44015884, 0.44431305, 0.44832993,
           0.45235443, 0.4563179 , 0.46042252, 0.4643364 , 0.4684639 ,
           0.4684639 , 0.47248459, 0.47671509, 0.48161316, 0.48161316,
           0.48693848, 0.49265671, 0.49265671, 0.49913025, 0.49913025,
           0.50615692, 0.50615692, 0.51384735, 0.51384735, 0.51384735,
           0.52233124, 0.52233124, 0.53205109, 0.53205109, 0.53205109,
           0.54247284, 0.54247284, 0.54247284, 0.54247284, 0.55409622,
           0.55409622, 0.55409622, 0.56671524, 0.56671524, 0.56671524,
           0.56671524, 0.58049774, 0.58049774, 0.58049774, 0.58049774,
           0.58049774, 0.59671021, 0.59671021, 0.59671021, 0.59671021,
           0.59671021, 0.59671021, 0.61540222, 0.61540222, 0.61540222,
           0.61540222, 0.61540222, 0.61540222, 0.63710403, 0.63710403,
           0.63710403, 0.63710403, 0.63710403, 0.63710403, 0.63710403,
           0.63710403, 0.66249847, 0.66249847, 0.66249847, 0.66249847,
           0.66249847, 0.66249847, 0.66249847, 0.66249847, 0.66249847,
           0.69279861, 0.69279861, 0.69279861, 0.69279861, 0.69279861,
           0.69279861, 0.69279861, 0.69279861, 0.69279861, 0.69279861,
           0.72776794, 0.72776794, 0.72776794, 0.72776794, 0.72776794,
           0.72776794, 0.72776794, 0.72776794, 0.72776794, 0.72776794,
           0.76680756, 0.76680756, 0.76680756, 0.76680756, 0.76680756,
           0.76680756, 0.76680756, 0.76680756, 0.76680756, 0.76680756,
           0.80751419, 0.80751419, 0.80751419, 0.80751419, 0.80751419,
           0.80751419, 0.80751419, 0.80751419, 0.84532166, 0.84532166,
           0.84532166, 0.84532166, 0.84532166, 0.84532166, 0.84532166,
           0.87889481, 0.87889481, 0.87889481, 0.87889481, 0.87889481,
           0.87889481, 0.90618515, 0.90618515, 0.90618515, 0.90618515,
           0.92704391, 0.92704391, 0.92704391, 0.94373703, 0.94373703,
           0.94373703, 0.95618439, 0.95618439, 0.96558762, 0.97280502,
           0.97854996, 0.98321533, 0.9893074 , 0.99493408, 1.        ,
           1.        ]), array([0.00461578, 0.0070076 , 0.01243973, 0.01507187, 0.01802826,
           0.02395248, 0.0269165 , 0.02994919, 0.03321838, 0.03656006,
           0.04312515, 0.04663086, 0.05042267, 0.05435944, 0.05435944,
           0.05854797, 0.06300354, 0.06750488, 0.07191467, 0.07661057,
           0.07661057, 0.08159256, 0.08653259, 0.09187698, 0.09187698,
           0.09748459, 0.10296249, 0.10296249, 0.1084137 , 0.11369705,
           0.11369705, 0.11931229, 0.12514114, 0.12514114, 0.13137436,
           0.13729095, 0.13729095, 0.14342117, 0.14960098, 0.14960098,
           0.15583038, 0.1616745 , 0.1616745 , 0.16753769, 0.173069  ,
           0.173069  , 0.1785202 , 0.18362808, 0.18899155, 0.18899155,
           0.19429398, 0.19944763, 0.2044487 , 0.2044487 , 0.20970535,
           0.2149086 , 0.22014618, 0.22535706, 0.22535706, 0.23035431,
           0.23517609, 0.24021149, 0.24021149, 0.24528885, 0.25021362,
           0.25511932, 0.25983047, 0.264534  , 0.264534  , 0.26902771,
           0.2737999 , 0.2784996 , 0.28297806, 0.2874527 , 0.29181671,
           0.29613876, 0.29613876, 0.300457  , 0.30485153, 0.30916214,
           0.31380463, 0.31824493, 0.32283401, 0.32283401, 0.32744598,
           0.33211517, 0.33681488, 0.3415184 , 0.3459816 , 0.35089111,
           0.35089111, 0.35541916, 0.3604393 , 0.36510849, 0.36972046,
           0.36972046, 0.37450027, 0.37914658, 0.38393402, 0.38879013,
           0.38879013, 0.39370728, 0.39845276, 0.40338516, 0.40843582,
           0.40843582, 0.41337204, 0.41848755, 0.42372894, 0.42372894,
           0.42913437, 0.43451691, 0.43451691, 0.43984604, 0.44532776,
           0.45063019, 0.45063019, 0.45628357, 0.46189499, 0.46189499,
           0.46772003, 0.47354126, 0.47354126, 0.4792099 , 0.48477173,
           0.4902153 , 0.4902153 , 0.49565887, 0.501297  , 0.501297  ,
           0.50657654, 0.51218796, 0.51770401, 0.51770401, 0.52318192,
           0.52898407, 0.52898407, 0.53472519, 0.54030991, 0.54030991,
           0.54597473, 0.55184555, 0.55184555, 0.55765915, 0.56364441,
           0.56364441, 0.56943893, 0.57495117, 0.57495117, 0.58057022,
           0.58616638, 0.59166336, 0.59166336, 0.59705734, 0.60250854,
           0.60250854, 0.60789108, 0.61345291, 0.61889267, 0.61889267,
           0.62424469, 0.62951279, 0.63500977, 0.63500977, 0.64016724,
           0.64548492, 0.65060043, 0.65060043, 0.65573502, 0.66101837,
           0.66629028, 0.66629028, 0.67158508, 0.67647934, 0.68143082,
           0.68643951, 0.68643951, 0.69115829, 0.6957283 , 0.70047379,
           0.70516586, 0.70963287, 0.71413422, 0.71413422, 0.71870041,
           0.72331619, 0.7275238 , 0.7318573 , 0.73613358, 0.74034119,
           0.74467087, 0.7486763 , 0.75275421, 0.75684738, 0.76099396,
           0.76493454, 0.76908493, 0.77293777, 0.7767601 , 0.78086853,
           0.78483963, 0.78870773, 0.79273224, 0.79650116, 0.80031586,
           0.80399704, 0.80779648, 0.81166077, 0.81529999, 0.81908798,
           0.82278061, 0.82622528, 0.82961655, 0.83312988, 0.83988571,
           0.84302902, 0.84616089, 0.84920502, 0.85557938, 0.85850525,
           0.86143112, 0.86722183, 0.87001038, 0.8757019 , 0.87834167,
           0.88354874, 0.88619614, 0.89122772, 0.89357758, 0.89854813,
           0.90325546, 0.90770721, 0.91191483, 0.91592026, 0.91985703,
           0.92372894, 0.92755508, 0.93129349, 0.93493652, 0.9397583 ,
           0.94290924, 0.9473381 , 0.95023727, 0.95468521, 0.95828247,
           0.96260452, 0.96481705, 0.96900558, 0.97380066, 0.97815704,
           0.98176956, 0.98664474, 0.99109268, 0.99109268, 1.        ,
           1.        ])), 'plotted': None}




.. rst-class:: sphx-glr-timing

   **Total running time of the script:** ( 0 minutes  2.596 seconds)


.. _sphx_glr_download_examples_imaging_contrast_enhancement.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download sphx-glr-download-python

     :download:`Download Python source code: contrast_enhancement.py <contrast_enhancement.py>`



  .. container:: sphx-glr-download sphx-glr-download-jupyter

     :download:`Download Jupyter notebook: contrast_enhancement.ipynb <contrast_enhancement.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_