+++ /dev/null
-From 41159f3fd24e7653c556ddbf6ba93ad2aa8b541f Mon Sep 17 00:00:00 2001
-From: Steven Silvester <steven.silvester@ieee.org>
-Date: Mon, 19 Oct 2015 18:07:32 -0500
-Subject: [PATCH] Fix adapthist mask logic
-
-Use minlength in bincount
-
-Fix mask logic
----
- skimage/exposure/_adapthist.py | 8 +++++---
- skimage/exposure/tests/test_exposure.py | 14 +++++++-------
- 2 files changed, 12 insertions(+), 10 deletions(-)
-
-diff --git a/skimage/exposure/_adapthist.py b/skimage/exposure/_adapthist.py
-index 343f71b..757daff 100644
---- a/skimage/exposure/_adapthist.py
-+++ b/skimage/exposure/_adapthist.py
-@@ -247,12 +247,14 @@ def clip_histogram(hist, clip_limit):
- while n_excess > 0: # Redistribute remaining excess
- index = 0
- while n_excess > 0 and index < hist.size:
-+ under_mask = hist < 0
- step_size = int(hist[hist < clip_limit].size / n_excess)
- step_size = max(step_size, 1)
- indices = np.arange(index, hist.size, step_size)
-- under = hist[indices] < clip_limit
-- hist[under] += 1
-- n_excess -= hist[under].size
-+ under_mask[indices] = True
-+ under_mask = (under_mask) & (hist < clip_limit)
-+ hist[under_mask] += 1
-+ n_excess -= under_mask.sum()
- index += 1
-
- return hist
-diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py
-index 8fb6d62..1b9c778 100644
---- a/skimage/exposure/tests/test_exposure.py
-+++ b/skimage/exposure/tests/test_exposure.py
-@@ -199,9 +199,9 @@ def test_adapthist_scalar():
- full_scale = skimage.exposure.rescale_intensity(skimage.img_as_float(img))
-
- assert_almost_equal = np.testing.assert_almost_equal
-- assert_almost_equal(peak_snr(full_scale, adapted), 101.2295, 3)
-+ assert_almost_equal(peak_snr(full_scale, adapted), 102.066, 3)
- assert_almost_equal(norm_brightness_err(full_scale, adapted),
-- 0.041, 3)
-+ 0.038, 3)
- return img, adapted
-
-
-@@ -217,8 +217,8 @@ def test_adapthist_grayscale():
- nbins=128)
- assert_almost_equal = np.testing.assert_almost_equal
- assert img.shape == adapted.shape
-- assert_almost_equal(peak_snr(img, adapted), 97.6876, 3)
-- assert_almost_equal(norm_brightness_err(img, adapted), 0.0591, 3)
-+ assert_almost_equal(peak_snr(img, adapted), 102.078, 3)
-+ assert_almost_equal(norm_brightness_err(img, adapted), 0.0529, 3)
- return data, adapted
-
-
-@@ -238,7 +238,7 @@ def test_adapthist_color():
- assert adapted.max() == 1.0
- assert img.shape == adapted.shape
- full_scale = skimage.exposure.rescale_intensity(img)
-- assert_almost_equal(peak_snr(full_scale, adapted), 109.6, 1)
-+ assert_almost_equal(peak_snr(full_scale, adapted), 109.393, 1)
- assert_almost_equal(norm_brightness_err(full_scale, adapted), 0.02, 2)
- return data, adapted
-
-@@ -256,8 +256,8 @@ def test_adapthist_alpha():
- full_scale = skimage.exposure.rescale_intensity(img)
- assert img.shape == adapted.shape
- assert_almost_equal = np.testing.assert_almost_equal
-- assert_almost_equal(peak_snr(full_scale, adapted), 109.60, 2)
-- assert_almost_equal(norm_brightness_err(full_scale, adapted), 0.0235, 3)
-+ assert_almost_equal(peak_snr(full_scale, adapted), 109.393, 2)
-+ assert_almost_equal(norm_brightness_err(full_scale, adapted), 0.0248, 3)
-
-
- def peak_snr(img1, img2):
+++ /dev/null
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 python3_4 )
-
-inherit distutils-r1 eutils virtualx
-
-MYPN="${PN/scikits_/scikit-}"
-MYP="${MYPN}-${PV}"
-
-DESCRIPTION="Image processing routines for SciPy"
-HOMEPAGE="http://scikit-image.org/"
-SRC_URI="mirror://pypi/${PN:0:1}/${MYPN}/${MYP}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc freeimage gtk pyamg qt4 test"
-
-RDEPEND="
- >=dev-python/matplotlib-1.1.0[${PYTHON_USEDEP}]
- >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.6.1[${PYTHON_USEDEP}]
- >=dev-python/pillow-1.7.8[${PYTHON_USEDEP}]
- >=dev-python/six-1.3[${PYTHON_USEDEP}]
- >=sci-libs/scipy-0.9[sparse,${PYTHON_USEDEP}]
- freeimage? ( media-libs/freeimage )
- gtk? ( dev-python/pygtk[$(python_gen_usedep 'python2*')] )
- pyamg? ( dev-python/pyamg[$(python_gen_usedep 'python2*')] )
- qt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )"
-DEPEND="${RDEPEND}
- >=dev-python/cython-0.21[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/nose[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/${MYP}"
-
-DOCS=( CONTRIBUTORS.txt CONTRIBUTING.txt DEPENDS.txt RELEASE.txt TASKS.txt TODO.txt )
-
-PATCHES=(
- "${FILESDIR}"/${P}-adapthist-backport.patch
-)
-
-python_test() {
- distutils_install_for_testing
- mkdir for_test && cd for_test || die
- echo "backend : Agg" > matplotlibrc || die
- echo "backend.qt4 : PyQt4" >> matplotlibrc || die
- #echo "backend.qt4 : PySide" >> matplotlibrc || die
- VIRTUALX_COMMAND=nosetests
- MPLCONFIGDIR=. virtualmake --exe -v skimage || die
-}
-
-pkg_postinst() {
- optfeature "FITS io capability" dev-python/astropy
- #optfeature "io plugin providing a wide variety of formats, including specialized formats using in medical imaging." dev-python/simpleitk
- #optfeature "io plugin providing most standard formats" dev-python/imread
-}
+++ /dev/null
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{4,5} )
-
-inherit distutils-r1 eutils virtualx
-
-MYPN="${PN/scikits_/scikit-}"
-MYP="${MYPN}-${PV}"
-
-DESCRIPTION="Image processing routines for SciPy"
-HOMEPAGE="http://scikit-image.org/"
-SRC_URI="mirror://pypi/${PN:0:1}/${MYPN}/${MYP}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc freeimage pyamg qt4 test"
-
-RDEPEND="
- dev-python/matplotlib[${PYTHON_USEDEP}]
- dev-python/networkx[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- sci-libs/scipy[sparse,${PYTHON_USEDEP}]
- freeimage? ( media-libs/freeimage )
- pyamg? ( dev-python/pyamg[${PYTHON_USEDEP}] )
- qt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )"
-DEPEND="${RDEPEND}
- >=dev-python/cython-0.23[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? ( dev-python/nose[${PYTHON_USEDEP}] )"
-
-S="${WORKDIR}/${MYP}"
-
-DOCS=( CONTRIBUTORS.txt CONTRIBUTING.txt DEPENDS.txt RELEASE.txt TASKS.txt TODO.txt )
-
-python_test() {
- distutils_install_for_testing
- cd "${TEST_DIR}" || die "no ${TEST_DIR} available"
- echo "backend : Agg" > matplotlibrc || die
- echo "backend.qt4 : PyQt4" >> matplotlibrc || die
- #echo "backend.qt4 : PySide" >> matplotlibrc || die
- MPLCONFIGDIR=. virtx nosetests --exe -v skimage || die
-}
-
-pkg_postinst() {
- optfeature "FITS io capability" dev-python/astropy
- optfeature "GTK" dev-python/pygtk
- optfeature "Parallel computation" dev-python/dask
- # not in portage yet
- #optfeature "io plugin providing a wide variety of formats, including specialized formats using in medical imaging." dev-python/simpleitk
- #optfeature "io plugin providing most standard formats" dev-python/imread
-}