diff --git a/DEPENDS.txt b/DEPENDS.txt index aa3cd021..02ee007f 100644 --- a/DEPENDS.txt +++ b/DEPENDS.txt @@ -2,7 +2,7 @@ Build Requirements ------------------ * `Python >= 2.6 `__ * `Numpy >= 1.6 `__ -* `Cython >= 0.19.2 `__ +* `Cython >= 0.21 `__ * `Six >=1.3 `__ You can use pip to automatically install the base dependencies as follows:: diff --git a/requirements.txt b/requirements.txt index 189b627b..12ce5fc6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -cython>=0.19.2 +cython>=0.21 matplotlib>=1.1.0 numpy>=1.6.1 scipy>=0.9 diff --git a/skimage/_shared/testing.py b/skimage/_shared/testing.py index 0f556acf..1c41221b 100644 --- a/skimage/_shared/testing.py +++ b/skimage/_shared/testing.py @@ -5,13 +5,13 @@ import os import re from tempfile import NamedTemporaryFile -from skimage import ( - data, io, img_as_uint, img_as_float, img_as_int, img_as_ubyte) from numpy import testing import numpy as np from skimage._shared._warnings import expected_warnings import warnings +from .. import data, io, img_as_uint, img_as_float, img_as_int, img_as_ubyte + SKIP_RE = re.compile("(\s*>>>.*?)(\s*)#\s*skip\s+if\s+(.*)$") diff --git a/skimage/color/adapt_rgb.py b/skimage/color/adapt_rgb.py index d5966813..8dc02b34 100644 --- a/skimage/color/adapt_rgb.py +++ b/skimage/color/adapt_rgb.py @@ -2,8 +2,8 @@ import functools import numpy as np -from skimage import color -from skimage.util.dtype import convert +from .. import color +from ..util.dtype import convert __all__ = ['adapt_rgb', 'hsv_value', 'each_channel'] diff --git a/skimage/color/colorlabel.py b/skimage/color/colorlabel.py index ecf56ed9..76cdd6f2 100644 --- a/skimage/color/colorlabel.py +++ b/skimage/color/colorlabel.py @@ -3,9 +3,9 @@ import itertools import numpy as np -from skimage import img_as_float -from .colorconv import rgb2gray, gray2rgb +from .. import img_as_float from . import rgb_colors +from .colorconv import rgb2gray, gray2rgb import six from six.moves import zip diff --git a/skimage/color/delta_e.py b/skimage/color/delta_e.py index cdd6571a..0511e7a9 100644 --- a/skimage/color/delta_e.py +++ b/skimage/color/delta_e.py @@ -21,7 +21,7 @@ from __future__ import division import numpy as np -from skimage.color.colorconv import lab2lch, _cart2polar_2pi +from ..color.colorconv import lab2lch, _cart2polar_2pi def deltaE_cie76(lab1, lab2): diff --git a/skimage/data/__init__.py b/skimage/data/__init__.py index 81514ce9..2be829ac 100644 --- a/skimage/data/__init__.py +++ b/skimage/data/__init__.py @@ -8,8 +8,8 @@ For more images, see import os as _os +from .. import data_dir from ..io import imread, use_plugin -from skimage import data_dir __all__ = ['load', diff --git a/skimage/draw/_draw.pyx b/skimage/draw/_draw.pyx index 649f69f2..d99c10ae 100644 --- a/skimage/draw/_draw.pyx +++ b/skimage/draw/_draw.pyx @@ -7,7 +7,7 @@ import numpy as np cimport numpy as cnp from libc.math cimport sqrt, sin, cos, floor, ceil -from skimage._shared.geometry cimport point_in_polygon +from .._shared.geometry cimport point_in_polygon def _coords_inside_image(rr, cc, shape, val=None): diff --git a/skimage/exposure/_adapthist.py b/skimage/exposure/_adapthist.py index 668d27a6..b71916f5 100644 --- a/skimage/exposure/_adapthist.py +++ b/skimage/exposure/_adapthist.py @@ -14,10 +14,10 @@ responsible. Basically, don't be a jerk, and remember that anything free comes with no guarantee. """ import numpy as np -import skimage -from skimage.color.adapt_rgb import adapt_rgb, hsv_value -from skimage.exposure import rescale_intensity -from skimage.util import view_as_blocks, pad +from .. import img_as_float, img_as_uint +from ..color.adapt_rgb import adapt_rgb, hsv_value +from ..exposure import rescale_intensity +from ..util import view_as_blocks, pad MAX_REG_X = 16 # max. # contextual regions in x-direction */ @@ -74,11 +74,11 @@ def equalize_adapthist(image, ntiles_x=8, ntiles_y=8, clip_limit=0.01, .. [1] http://tog.acm.org/resources/GraphicsGems/gems.html#gemsvi .. [2] https://en.wikipedia.org/wiki/CLAHE#CLAHE """ - image = skimage.img_as_uint(image) + image = img_as_uint(image) image = rescale_intensity(image, out_range=(0, NR_OF_GREY - 1)) out = _clahe(image, ntiles_x, ntiles_y, clip_limit * nbins, nbins) image[:out.shape[0], :out.shape[1]] = out - image = skimage.img_as_float(image) + image = img_as_float(image) return rescale_intensity(image) diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index 50f66245..8774cf9b 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -1,8 +1,8 @@ import warnings import numpy as np -from skimage import img_as_float -from skimage.util.dtype import dtype_range, dtype_limits +from .. import img_as_float +from ..util.dtype import dtype_range, dtype_limits __all__ = ['histogram', 'cumulative_distribution', 'equalize_hist', diff --git a/skimage/feature/_canny.py b/skimage/feature/_canny.py index 4788b94d..73566d00 100644 --- a/skimage/feature/_canny.py +++ b/skimage/feature/_canny.py @@ -16,8 +16,8 @@ import numpy as np import scipy.ndimage as ndi from scipy.ndimage import (gaussian_filter, generate_binary_structure, binary_erosion, label) -from skimage import dtype_limits -from skimage._shared.utils import assert_nD +from .. import dtype_limits +from .._shared.utils import assert_nD def smooth_with_function_and_mask(image, function, mask): diff --git a/skimage/feature/_daisy.py b/skimage/feature/_daisy.py index d2d03ec7..4ba42f25 100644 --- a/skimage/feature/_daisy.py +++ b/skimage/feature/_daisy.py @@ -1,9 +1,9 @@ import numpy as np from scipy import sqrt, pi, arctan2, cos, sin, exp from scipy.ndimage import gaussian_filter -import skimage.color -from skimage import img_as_float, draw -from skimage._shared.utils import assert_nD +from .. import img_as_float, draw +from ..color import gray2rgb +from .._shared.utils import assert_nD def daisy(img, step=4, radius=15, rings=3, histograms=8, orientations=8, @@ -177,7 +177,7 @@ def daisy(img, step=4, radius=15, rings=3, histograms=8, orientations=8, descs[:, :, i:i + orientations] /= norms[:, :, np.newaxis] if visualize: - descs_img = skimage.color.gray2rgb(img) + descs_img = gray2rgb(img) for i in range(descs.shape[0]): for j in range(descs.shape[1]): # Draw center histogram sigma diff --git a/skimage/feature/_hog.py b/skimage/feature/_hog.py index 425a0d1b..11f7099d 100644 --- a/skimage/feature/_hog.py +++ b/skimage/feature/_hog.py @@ -1,7 +1,7 @@ import numpy as np from scipy import sqrt, pi, arctan2, cos, sin from scipy.ndimage import uniform_filter -from skimage._shared.utils import assert_nD +from .._shared.utils import assert_nD def hog(image, orientations=9, pixels_per_cell=(8, 8), @@ -137,7 +137,7 @@ def hog(image, orientations=9, pixels_per_cell=(8, 8), hog_image = None if visualise: - from skimage import draw + from .. import draw radius = min(cx, cy) // 2 - 1 hog_image = np.zeros((sy, sx), dtype=float) diff --git a/skimage/feature/_texture.pyx b/skimage/feature/_texture.pyx index 4ee23a7a..5eb91486 100644 --- a/skimage/feature/_texture.pyx +++ b/skimage/feature/_texture.pyx @@ -5,7 +5,7 @@ import numpy as np cimport numpy as cnp from libc.math cimport sin, cos, abs -from skimage._shared.interpolation cimport bilinear_interpolation, round +from .._shared.interpolation cimport bilinear_interpolation, round def _glcm_loop(cnp.uint8_t[:, ::1] image, double[:] distances, diff --git a/skimage/feature/blob.py b/skimage/feature/blob.py index acc8f9c5..bc93d265 100644 --- a/skimage/feature/blob.py +++ b/skimage/feature/blob.py @@ -5,11 +5,11 @@ import itertools as itt import math from math import sqrt, hypot, log from numpy import arccos -from skimage.util import img_as_float +from ..util import img_as_float from .peak import peak_local_max from ._hessian_det_appx import _hessian_matrix_det -from skimage.transform import integral_image -from skimage._shared.utils import assert_nD +from ..transform import integral_image +from .._shared.utils import assert_nD # This basic blob detection algorithm is based on: diff --git a/skimage/feature/brief.py b/skimage/feature/brief.py index d7104051..783cdbd0 100644 --- a/skimage/feature/brief.py +++ b/skimage/feature/brief.py @@ -5,7 +5,7 @@ from .util import (DescriptorExtractor, _mask_border_keypoints, _prepare_grayscale_input_2D) from .brief_cy import _brief_loop -from skimage._shared.utils import assert_nD +from .._shared.utils import assert_nD class BRIEF(DescriptorExtractor): diff --git a/skimage/feature/censure.py b/skimage/feature/censure.py index aff923c5..d75c03ca 100644 --- a/skimage/feature/censure.py +++ b/skimage/feature/censure.py @@ -1,15 +1,13 @@ import numpy as np from scipy.ndimage.filters import maximum_filter, minimum_filter, convolve -from skimage.feature.util import FeatureDetector, _prepare_grayscale_input_2D - -from skimage.transform import integral_image -from skimage.feature import structure_tensor -from skimage.morphology import octagon, star -from skimage.feature.util import _mask_border_keypoints - -from skimage.feature.censure_cy import _censure_dob_loop -from skimage._shared.utils import assert_nD +from ..transform import integral_image +from ..feature import structure_tensor +from ..morphology import octagon, star +from ..feature.censure_cy import _censure_dob_loop +from ..feature.util import (FeatureDetector, _prepare_grayscale_input_2D, + _mask_border_keypoints) +from .._shared.utils import assert_nD # The paper(Reference [1]) mentions the sizes of the Octagon shaped filter # kernel for the first seven scales only. The sizes of the later scales diff --git a/skimage/feature/corner.py b/skimage/feature/corner.py index 630f3603..2253c0ec 100644 --- a/skimage/feature/corner.py +++ b/skimage/feature/corner.py @@ -2,10 +2,10 @@ import numpy as np from scipy import ndimage from scipy import stats -from skimage.util import img_as_float, pad -from skimage.feature import peak_local_max -from skimage.feature.util import _prepare_grayscale_input_2D -from skimage.feature.corner_cy import _corner_fast +from ..util import img_as_float, pad +from ..feature import peak_local_max +from ..feature.util import _prepare_grayscale_input_2D +from ..feature.corner_cy import _corner_fast from ._hessian_det_appx import _hessian_matrix_det from ..transform import integral_image from .._shared.utils import safe_as_int diff --git a/skimage/feature/corner_cy.pyx b/skimage/feature/corner_cy.pyx index 7aef99e9..cef104e0 100644 --- a/skimage/feature/corner_cy.pyx +++ b/skimage/feature/corner_cy.pyx @@ -7,8 +7,8 @@ cimport numpy as cnp from libc.float cimport DBL_MAX from libc.math cimport atan2 -from skimage.util import img_as_float, pad -from skimage.color import rgb2grey +from ..util import img_as_float, pad +from ..color import rgb2grey from .util import _prepare_grayscale_input_2D diff --git a/skimage/feature/orb.py b/skimage/feature/orb.py index 25fa163f..b8f2a89e 100644 --- a/skimage/feature/orb.py +++ b/skimage/feature/orb.py @@ -1,13 +1,13 @@ import numpy as np -from skimage.feature.util import (FeatureDetector, DescriptorExtractor, - _mask_border_keypoints, - _prepare_grayscale_input_2D) +from ..feature.util import (FeatureDetector, DescriptorExtractor, + _mask_border_keypoints, + _prepare_grayscale_input_2D) -from skimage.feature import (corner_fast, corner_orientations, corner_peaks, +from ..feature import (corner_fast, corner_orientations, corner_peaks, corner_harris) -from skimage.transform import pyramid_gaussian -from skimage._shared.utils import assert_nD +from ..transform import pyramid_gaussian +from .._shared.utils import assert_nD from .orb_cy import _orb_loop diff --git a/skimage/feature/orb_cy.pyx b/skimage/feature/orb_cy.pyx index c5129e85..49c4e650 100644 --- a/skimage/feature/orb_cy.pyx +++ b/skimage/feature/orb_cy.pyx @@ -6,12 +6,12 @@ import os import numpy as np -from skimage import data_dir +from .. import data_dir cimport numpy as cnp from libc.math cimport sin, cos -from skimage._shared.interpolation cimport round +from .._shared.interpolation cimport round POS = np.loadtxt(os.path.join(data_dir, "orb_descriptor_positions.txt"), dtype=np.int8) diff --git a/skimage/feature/template.py b/skimage/feature/template.py index 9c1ed35e..7aad0dfb 100644 --- a/skimage/feature/template.py +++ b/skimage/feature/template.py @@ -1,8 +1,8 @@ import numpy as np from scipy.signal import fftconvolve -from skimage.util import pad -from skimage._shared.utils import assert_nD +from ..util import pad +from .._shared.utils import assert_nD def _window_sum_2d(image, window_shape): diff --git a/skimage/feature/texture.py b/skimage/feature/texture.py index 45d97b97..7e23f0be 100644 --- a/skimage/feature/texture.py +++ b/skimage/feature/texture.py @@ -3,7 +3,7 @@ Methods to characterize image textures. """ import numpy as np -from skimage._shared.utils import assert_nD +from .._shared.utils import assert_nD from ._texture import _glcm_loop, _local_binary_pattern diff --git a/skimage/feature/util.py b/skimage/feature/util.py index e70be719..b0c66986 100644 --- a/skimage/feature/util.py +++ b/skimage/feature/util.py @@ -1,7 +1,7 @@ import numpy as np -from skimage.util import img_as_float -from skimage._shared.utils import assert_nD +from ..util import img_as_float +from .._shared.utils import assert_nD class FeatureDetector(object): diff --git a/skimage/filter/__init__.py b/skimage/filter/__init__.py index 93975a96..5d43f69d 100644 --- a/skimage/filter/__init__.py +++ b/skimage/filter/__init__.py @@ -1,4 +1,4 @@ -from skimage._shared.utils import skimage_deprecation +from .._shared.utils import skimage_deprecation from warnings import warn global _import_warned diff --git a/skimage/filters/__init__.py b/skimage/filters/__init__.py index 169b4132..aeba00f7 100644 --- a/skimage/filters/__init__.py +++ b/skimage/filters/__init__.py @@ -13,8 +13,8 @@ from .thresholding import (threshold_adaptive, threshold_otsu, threshold_yen, from . import rank from .rank import median -from skimage._shared.utils import deprecated -from skimage import restoration +from .._shared.utils import deprecated +from .. import restoration denoise_bilateral = deprecated('skimage.restoration.denoise_bilateral')\ (restoration.denoise_bilateral) denoise_tv_bregman = deprecated('skimage.restoration.denoise_tv_bregman')\ @@ -26,7 +26,7 @@ denoise_tv_chambolle = deprecated('skimage.restoration.denoise_tv_chambolle')\ @deprecated def canny(*args, **kwargs): # Hack to avoid circular import - from skimage.feature._canny import canny as canny_ + from ..feature._canny import canny as canny_ return canny_(*args, **kwargs) diff --git a/skimage/filters/_gabor.py b/skimage/filters/_gabor.py index 015d0566..862a593c 100644 --- a/skimage/filters/_gabor.py +++ b/skimage/filters/_gabor.py @@ -1,6 +1,6 @@ import numpy as np from scipy import ndimage -from skimage._shared.utils import assert_nD +from .._shared.utils import assert_nD __all__ = ['gabor_kernel', 'gabor_filter'] diff --git a/skimage/filters/edges.py b/skimage/filters/edges.py index e382bc95..1eeed4de 100644 --- a/skimage/filters/edges.py +++ b/skimage/filters/edges.py @@ -10,8 +10,8 @@ Original author: Lee Kamentsky """ import numpy as np -from skimage import img_as_float -from skimage._shared.utils import assert_nD, deprecated +from .. import img_as_float +from .._shared.utils import assert_nD, deprecated from scipy.ndimage import convolve, binary_erosion, generate_binary_structure diff --git a/skimage/filters/lpi_filter.py b/skimage/filters/lpi_filter.py index e160407a..12943714 100644 --- a/skimage/filters/lpi_filter.py +++ b/skimage/filters/lpi_filter.py @@ -5,7 +5,7 @@ import numpy as np from scipy.fftpack import ifftshift -from skimage._shared.utils import assert_nD +from .._shared.utils import assert_nD eps = np.finfo(float).eps diff --git a/skimage/filters/rank/_percentile.py b/skimage/filters/rank/_percentile.py index e57f5df1..918ad348 100644 --- a/skimage/filters/rank/_percentile.py +++ b/skimage/filters/rank/_percentile.py @@ -23,7 +23,7 @@ References """ import numpy as np -from skimage._shared.utils import assert_nD +from ..._shared.utils import assert_nD from . import percentile_cy from .generic import _handle_input diff --git a/skimage/filters/rank/bilateral.py b/skimage/filters/rank/bilateral.py index 25fe45b6..48e350b8 100644 --- a/skimage/filters/rank/bilateral.py +++ b/skimage/filters/rank/bilateral.py @@ -24,8 +24,8 @@ References """ import numpy as np -from skimage import img_as_ubyte -from skimage._shared.utils import assert_nD +from ... import img_as_ubyte +from ..._shared.utils import assert_nD from . import bilateral_cy from .generic import _handle_input diff --git a/skimage/filters/rank/generic.py b/skimage/filters/rank/generic.py index 7a3be5d7..d444a6a5 100644 --- a/skimage/filters/rank/generic.py +++ b/skimage/filters/rank/generic.py @@ -18,8 +18,8 @@ References import warnings import numpy as np -from skimage import img_as_ubyte -from skimage._shared.utils import assert_nD +from ... import img_as_ubyte +from ..._shared.utils import assert_nD from . import generic_cy diff --git a/skimage/filters/thresholding.py b/skimage/filters/thresholding.py index c95e56d2..74c5fc14 100644 --- a/skimage/filters/thresholding.py +++ b/skimage/filters/thresholding.py @@ -5,8 +5,8 @@ __all__ = ['threshold_adaptive', import numpy as np import scipy.ndimage -from skimage.exposure import histogram -from skimage._shared.utils import assert_nD +from ..exposure import histogram +from .._shared.utils import assert_nD def threshold_adaptive(image, block_size, method='gaussian', offset=0, diff --git a/skimage/io/_io.py b/skimage/io/_io.py index 71f8f25c..f44bfd8b 100644 --- a/skimage/io/_io.py +++ b/skimage/io/_io.py @@ -3,8 +3,8 @@ from io import BytesIO import numpy as np import six -from skimage.io.manage_plugins import call_plugin -from skimage.color import rgb2grey +from ..io.manage_plugins import call_plugin +from ..color import rgb2grey from .util import file_or_url_context diff --git a/skimage/io/_plugins/imread_plugin.py b/skimage/io/_plugins/imread_plugin.py index cb715e57..9311f18f 100644 --- a/skimage/io/_plugins/imread_plugin.py +++ b/skimage/io/_plugins/imread_plugin.py @@ -1,6 +1,6 @@ __all__ = ['imread', 'imsave'] -from skimage.util.dtype import convert +from ...util.dtype import convert try: import imread as _imread @@ -33,7 +33,7 @@ def imsave(fname, arr, format_str=None): arr : ndarray of uint8 or uint16 Array (image) to save. format_str: str,optional - Format to save as. + Format to save as. Notes ----- diff --git a/skimage/io/_plugins/pil_plugin.py b/skimage/io/_plugins/pil_plugin.py index 9f9118cf..09d51c7a 100644 --- a/skimage/io/_plugins/pil_plugin.py +++ b/skimage/io/_plugins/pil_plugin.py @@ -4,9 +4,8 @@ import numpy as np from six import string_types from PIL import Image -from skimage.util import img_as_ubyte, img_as_uint -from skimage.external.tifffile import ( - imread as tif_imread, imsave as tif_imsave) +from ...util import img_as_ubyte, img_as_uint +from ...external.tifffile import imread as tif_imread, imsave as tif_imsave def imread(fname, dtype=None, img_num=None, **kwargs): diff --git a/skimage/io/_plugins/skivi.py b/skimage/io/_plugins/skivi.py index fcfe8bc6..ee7b421d 100644 --- a/skimage/io/_plugins/skivi.py +++ b/skimage/io/_plugins/skivi.py @@ -209,7 +209,7 @@ class SkiviImageWindow(QMainWindow): self.rgb_hsv_disp.update_vals((x, y, r, g, b, h, s, v)) def save_to_stack(self): - from skimage import io + from ... import io img = self.arr.copy() io.push(img) msg = dedent(''' @@ -227,7 +227,7 @@ class SkiviImageWindow(QMainWindow): dialog.exec_() def save_to_file(self): - from skimage import io + from ... import io filename = str(QtGui.QFileDialog.getSaveFileName()) if len(filename) == 0: return diff --git a/skimage/io/_plugins/tifffile_plugin.py b/skimage/io/_plugins/tifffile_plugin.py index efdddf1b..a3a766f1 100644 --- a/skimage/io/_plugins/tifffile_plugin.py +++ b/skimage/io/_plugins/tifffile_plugin.py @@ -1 +1 @@ -from skimage.external.tifffile import imread, imsave +from ...external.tifffile import imread, imsave diff --git a/skimage/io/_plugins/util.py b/skimage/io/_plugins/util.py index 98dd4f87..609680d8 100644 --- a/skimage/io/_plugins/util.py +++ b/skimage/io/_plugins/util.py @@ -2,7 +2,7 @@ import numpy as np from . import _colormixer from . import _histograms import threading -from skimage.util import img_as_ubyte +from ...util import img_as_ubyte # utilities to make life easier for plugin writers. diff --git a/skimage/io/collection.py b/skimage/io/collection.py index 20bfb2bf..da2bfda8 100644 --- a/skimage/io/collection.py +++ b/skimage/io/collection.py @@ -11,7 +11,7 @@ import numpy as np import six from PIL import Image -from skimage.external.tifffile import TiffFile +from ..external.tifffile import TiffFile __all__ = ['MultiImage', 'ImageCollection', 'concatenate_images', diff --git a/skimage/measure/_pnpoly.pyx b/skimage/measure/_pnpoly.pyx index 90d990ce..d3c52451 100644 --- a/skimage/measure/_pnpoly.pyx +++ b/skimage/measure/_pnpoly.pyx @@ -5,7 +5,7 @@ import numpy as np cimport numpy as cnp -from skimage._shared.geometry cimport point_in_polygon, points_in_polygon +from .._shared.geometry cimport point_in_polygon, points_in_polygon def grid_points_in_poly(shape, verts): diff --git a/skimage/measure/block.py b/skimage/measure/block.py index a670a5fd..1691bef3 100644 --- a/skimage/measure/block.py +++ b/skimage/measure/block.py @@ -1,5 +1,5 @@ import numpy as np -from skimage.util import view_as_blocks, pad +from ..util import view_as_blocks, pad def block_reduce(image, block_size, func=np.sum, cval=0): diff --git a/skimage/morphology/__init__.py b/skimage/morphology/__init__.py index 5b659093..9bf311c4 100644 --- a/skimage/morphology/__init__.py +++ b/skimage/morphology/__init__.py @@ -11,7 +11,7 @@ from .greyreconstruct import reconstruction from .misc import remove_small_objects from ..measure._label import label -from skimage._shared.utils import deprecated as _deprecated +from .._shared.utils import deprecated as _deprecated label = _deprecated('skimage.measure.label')(label) diff --git a/skimage/morphology/_skeletonize_cy.pyx b/skimage/morphology/_skeletonize_cy.pyx index c4471a11..8dc8eb03 100644 --- a/skimage/morphology/_skeletonize_cy.pyx +++ b/skimage/morphology/_skeletonize_cy.pyx @@ -15,7 +15,6 @@ Original author: Lee Kamentsky ''' import numpy as np - cimport numpy as cnp diff --git a/skimage/morphology/convex_hull.py b/skimage/morphology/convex_hull.py index edc49d4b..5926e1e0 100644 --- a/skimage/morphology/convex_hull.py +++ b/skimage/morphology/convex_hull.py @@ -4,7 +4,7 @@ import numpy as np from ..measure import grid_points_in_poly from ._convex_hull import possible_hull from ..measure._label import label -from skimage.util import unique_rows +from ..util import unique_rows def convex_hull_image(image): diff --git a/skimage/morphology/grey.py b/skimage/morphology/grey.py index 8ab162cf..0642a104 100644 --- a/skimage/morphology/grey.py +++ b/skimage/morphology/grey.py @@ -2,7 +2,6 @@ Grayscale morphological operations """ import functools - import numpy as np from scipy import ndimage as nd from .misc import default_selem diff --git a/skimage/morphology/greyreconstruct.py b/skimage/morphology/greyreconstruct.py index 3e147e29..47f1f42d 100644 --- a/skimage/morphology/greyreconstruct.py +++ b/skimage/morphology/greyreconstruct.py @@ -11,7 +11,7 @@ Original author: Lee Kamentsky """ import numpy as np -from skimage.filters._rank_order import rank_order +from ..filters._rank_order import rank_order def reconstruction(seed, mask, method='dilation', selem=None, offset=None): diff --git a/skimage/morphology/selem.py b/skimage/morphology/selem.py index f75022ab..937ff45d 100644 --- a/skimage/morphology/selem.py +++ b/skimage/morphology/selem.py @@ -5,7 +5,7 @@ import numpy as np from scipy import ndimage -from skimage import draw +from .. import draw def square(width, dtype=np.uint8): """Generates a flat, square-shaped structuring element. diff --git a/skimage/novice/_novice.py b/skimage/novice/_novice.py index 03422b2e..cac72ee2 100644 --- a/skimage/novice/_novice.py +++ b/skimage/novice/_novice.py @@ -4,11 +4,10 @@ from collections import namedtuple from io import BytesIO import numpy as np -from skimage import io -from skimage import img_as_ubyte -from skimage.transform import resize -from skimage.color import color_dict -from skimage.io.util import file_or_url_context, is_url +from .. import io, img_as_ubyte +from ..transform import resize +from ..color import color_dict +from ..io.util import file_or_url_context, is_url import six from six.moves.urllib_parse import urlparse diff --git a/skimage/restoration/_denoise.py b/skimage/restoration/_denoise.py index fb599a64..10de6c68 100644 --- a/skimage/restoration/_denoise.py +++ b/skimage/restoration/_denoise.py @@ -1,8 +1,7 @@ # coding: utf-8 import numpy as np -from skimage import img_as_float -from skimage.restoration._denoise_cy import (_denoise_bilateral, - _denoise_tv_bregman) +from .. import img_as_float +from ..restoration._denoise_cy import _denoise_bilateral, _denoise_tv_bregman def denoise_bilateral(image, win_size=5, sigma_range=None, sigma_spatial=1, diff --git a/skimage/restoration/_denoise_cy.pyx b/skimage/restoration/_denoise_cy.pyx index 34404dce..c3faf355 100644 --- a/skimage/restoration/_denoise_cy.pyx +++ b/skimage/restoration/_denoise_cy.pyx @@ -8,8 +8,8 @@ import numpy as np from libc.math cimport exp, fabs, sqrt from libc.stdlib cimport malloc, free from libc.float cimport DBL_MAX -from skimage._shared.interpolation cimport get_pixel3d -from skimage.util import img_as_float +from .._shared.interpolation cimport get_pixel3d +from ..util import img_as_float cdef inline double _gaussian_weight(double sigma, double value): diff --git a/skimage/segmentation/_felzenszwalb_cy.pyx b/skimage/segmentation/_felzenszwalb_cy.pyx index 80afaedb..37229225 100644 --- a/skimage/segmentation/_felzenszwalb_cy.pyx +++ b/skimage/segmentation/_felzenszwalb_cy.pyx @@ -7,7 +7,7 @@ import scipy cimport cython cimport numpy as cnp -from skimage.measure._ccomp cimport find_root, join_trees +from ..measure._ccomp cimport find_root, join_trees from ..util import img_as_float diff --git a/skimage/segmentation/_join.py b/skimage/segmentation/_join.py index 5cceeb5b..94769be7 100644 --- a/skimage/segmentation/_join.py +++ b/skimage/segmentation/_join.py @@ -1,5 +1,5 @@ import numpy as np -from skimage._shared.utils import deprecated +from .._shared.utils import deprecated def join_segmentations(s1, s2): diff --git a/skimage/segmentation/_slic.pyx b/skimage/segmentation/_slic.pyx index 766cd317..1418e902 100644 --- a/skimage/segmentation/_slic.pyx +++ b/skimage/segmentation/_slic.pyx @@ -8,7 +8,7 @@ from cpython cimport bool import numpy as np cimport numpy as cnp -from skimage.util import regular_grid +from ..util import regular_grid def _slic_cython(double[:, :, :, ::1] image_zyx, @@ -32,7 +32,7 @@ def _slic_cython(double[:, :, :, ::1] image_zyx, spacing : 1D array of double, shape (3,) The voxel spacing along each image dimension. This parameter controls the weights of the distances along z, y, and x during - k-means clustering. + k-means clustering. slic_zero : bool True to run SLIC-zero, False to run original SLIC. @@ -178,7 +178,7 @@ def _slic_cython(double[:, :, :, ::1] image_zyx, for c in range(3, n_features): dist_color += (image_zyx[z, y, x, c - 3] - segments[k, c]) ** 2 - + # The reference implementation seems to only change # the color if it increases from previous iteration if max_dist_color[k] < dist_color: diff --git a/skimage/segmentation/slic_superpixels.py b/skimage/segmentation/slic_superpixels.py index 5671203e..08f4f828 100644 --- a/skimage/segmentation/slic_superpixels.py +++ b/skimage/segmentation/slic_superpixels.py @@ -5,10 +5,10 @@ import numpy as np from scipy import ndimage import warnings -from skimage.util import img_as_float, regular_grid -from skimage.segmentation._slic import (_slic_cython, - _enforce_label_connectivity_cython) -from skimage.color import rgb2lab +from ..util import img_as_float, regular_grid +from ..segmentation._slic import (_slic_cython, + _enforce_label_connectivity_cython) +from ..color import rgb2lab def slic(image, n_segments=100, compactness=10., max_iter=10, sigma=0, diff --git a/skimage/transform/_hough_transform.pyx b/skimage/transform/_hough_transform.pyx index b1602f74..e51085cb 100644 --- a/skimage/transform/_hough_transform.pyx +++ b/skimage/transform/_hough_transform.pyx @@ -10,12 +10,12 @@ cimport cython from libc.math cimport abs, fabs, sqrt, ceil, atan2, M_PI from libc.stdlib cimport rand -from skimage.draw import circle_perimeter +from ..draw import circle_perimeter cdef double PI_2 = 1.5707963267948966 cdef double NEG_PI_2 = -PI_2 -from skimage._shared.interpolation cimport round +from .._shared.interpolation cimport round def _hough_circle(cnp.ndarray img, diff --git a/skimage/transform/_warps_cy.pyx b/skimage/transform/_warps_cy.pyx index 47a28e35..27b6c95a 100644 --- a/skimage/transform/_warps_cy.pyx +++ b/skimage/transform/_warps_cy.pyx @@ -4,10 +4,10 @@ #cython: wraparound=False import numpy as np cimport numpy as cnp -from skimage._shared.interpolation cimport (nearest_neighbour_interpolation, - bilinear_interpolation, - biquadratic_interpolation, - bicubic_interpolation) +from .._shared.interpolation cimport (nearest_neighbour_interpolation, + bilinear_interpolation, + biquadratic_interpolation, + bicubic_interpolation) cdef inline void _matrix_transform(double x, double y, double* H, double *x_, diff --git a/skimage/transform/hough_transform.py b/skimage/transform/hough_transform.py index cbb4caa6..0760f5e7 100644 --- a/skimage/transform/hough_transform.py +++ b/skimage/transform/hough_transform.py @@ -1,6 +1,6 @@ import numpy as np from scipy import ndimage -from skimage import measure, morphology +from .. import measure, morphology from ._hough_transform import _hough_circle diff --git a/skimage/transform/pyramids.py b/skimage/transform/pyramids.py index 12cc7912..435d60b9 100644 --- a/skimage/transform/pyramids.py +++ b/skimage/transform/pyramids.py @@ -1,8 +1,8 @@ import math import numpy as np from scipy import ndimage -from skimage.transform import resize -from skimage.util import img_as_float +from ..transform import resize +from ..util import img_as_float def _smooth(image, sigma, mode, cval): diff --git a/skimage/viewer/canvastools/linetool.py b/skimage/viewer/canvastools/linetool.py index 58b05bc4..261d5a7e 100644 --- a/skimage/viewer/canvastools/linetool.py +++ b/skimage/viewer/canvastools/linetool.py @@ -1,7 +1,6 @@ import numpy as np - from matplotlib import lines -from skimage.viewer.canvastools.base import CanvasToolBase, ToolHandles +from ...viewer.canvastools.base import CanvasToolBase, ToolHandles __all__ = ['LineTool', 'ThickLineTool'] @@ -200,8 +199,8 @@ class ThickLineTool(LineTool): if __name__ == '__main__': # pragma: no cover - from skimage import data - from skimage.viewer import ImageViewer + from ... import data + from ...viewer import ImageViewer image = data.camera() diff --git a/skimage/viewer/canvastools/painttool.py b/skimage/viewer/canvastools/painttool.py index 9f4bb8ec..e8ce8281 100644 --- a/skimage/viewer/canvastools/painttool.py +++ b/skimage/viewer/canvastools/painttool.py @@ -3,7 +3,7 @@ import matplotlib.pyplot as plt import matplotlib.colors as mcolors LABELS_CMAP = mcolors.ListedColormap(['white', 'red', 'dodgerblue', 'gold', 'greenyellow', 'blueviolet']) -from skimage.viewer.canvastools.base import CanvasToolBase +from ...viewer.canvastools.base import CanvasToolBase __all__ = ['PaintTool'] @@ -198,8 +198,8 @@ class CenteredWindow(object): if __name__ == '__main__': # pragma: no cover np.testing.rundocs() - from skimage import data - from skimage.viewer import ImageViewer + from ... import data + from ...viewer import ImageViewer image = data.camera() diff --git a/skimage/viewer/canvastools/recttool.py b/skimage/viewer/canvastools/recttool.py index 9b6c1c6b..8a895adf 100644 --- a/skimage/viewer/canvastools/recttool.py +++ b/skimage/viewer/canvastools/recttool.py @@ -1,6 +1,6 @@ from matplotlib.widgets import RectangleSelector -from skimage.viewer.canvastools.base import CanvasToolBase -from skimage.viewer.canvastools.base import ToolHandles +from ...viewer.canvastools.base import CanvasToolBase +from ...viewer.canvastools.base import ToolHandles __all__ = ['RectangleTool'] @@ -33,7 +33,7 @@ class RectangleTool(CanvasToolBase, RectangleSelector): ---------- extents : tuple Rectangle extents: (xmin, xmax, ymin, ymax). - + Examples ---------- >>> from skimage import data @@ -41,12 +41,12 @@ class RectangleTool(CanvasToolBase, RectangleSelector): >>> from skimage.viewer.canvastools import RectangleTool >>> from skimage.draw import line >>> from skimage.draw import set_color - + >>> viewer = ImageViewer(data.coffee()) # doctest: +SKIP >>> def print_the_rect(extents): ... global viewer - ... im = viewer.image + ... im = viewer.image ... coord = np.int64(extents) ... [rr1, cc1] = line(coord[2],coord[0],coord[2],coord[1]) ... [rr2, cc2] = line(coord[2],coord[1],coord[3],coord[1]) @@ -57,11 +57,11 @@ class RectangleTool(CanvasToolBase, RectangleSelector): ... set_color(im, (rr3, cc3), [255, 0, 255]) ... set_color(im, (rr4, cc4), [0, 0, 0]) ... viewer.image=im - + >>> rect_tool = RectangleTool(viewer.ax, on_enter=print_the_rect) # doctest: +SKIP >>> viewer.show() # doctest: +SKIP """ - + def __init__(self, viewer, on_move=None, on_release=None, on_enter=None, maxdist=10, rect_props=None): self._rect = None @@ -234,8 +234,8 @@ class RectangleTool(CanvasToolBase, RectangleSelector): if __name__ == '__main__': # pragma: no cover - from skimage.viewer import ImageViewer - from skimage import data + from ...viewer import ImageViewer + from ... import data viewer = ImageViewer(data.camera()) diff --git a/skimage/viewer/plugins/canny.py b/skimage/viewer/plugins/canny.py index 83e80890..84313d02 100644 --- a/skimage/viewer/plugins/canny.py +++ b/skimage/viewer/plugins/canny.py @@ -1,7 +1,7 @@ import numpy as np import skimage -from skimage.feature import canny +from ...feature import canny from .overlayplugin import OverlayPlugin from ..widgets import Slider, ComboBox diff --git a/skimage/viewer/plugins/color_histogram.py b/skimage/viewer/plugins/color_histogram.py index d6c6ddfc..09415a83 100644 --- a/skimage/viewer/plugins/color_histogram.py +++ b/skimage/viewer/plugins/color_histogram.py @@ -1,7 +1,6 @@ import numpy as np import matplotlib.pyplot as plt -from skimage import color -from skimage import exposure +from ... import color, exposure from .plotplugin import PlotPlugin from ..canvastools import RectangleTool @@ -92,4 +91,3 @@ def pct_total_area(image, percentile=0.80): idx = int((image.size - 1) * percentile) sorted_pixels = np.sort(image.flat) return sorted_pixels[idx] - diff --git a/skimage/viewer/plugins/crop.py b/skimage/viewer/plugins/crop.py index 29ad5866..04a85321 100644 --- a/skimage/viewer/plugins/crop.py +++ b/skimage/viewer/plugins/crop.py @@ -1,6 +1,6 @@ from .base import Plugin from ..canvastools import RectangleTool -from skimage.viewer.widgets import SaveButtons +from ...viewer.widgets import SaveButtons __all__ = ['Crop'] diff --git a/skimage/viewer/plugins/lineprofile.py b/skimage/viewer/plugins/lineprofile.py index 46a0f1d2..c46b878b 100644 --- a/skimage/viewer/plugins/lineprofile.py +++ b/skimage/viewer/plugins/lineprofile.py @@ -1,9 +1,8 @@ from __future__ import division import numpy as np -from skimage.util.dtype import dtype_range -from skimage import draw -from skimage import measure +from ...util.dtype import dtype_range +from ... import draw, measure from .plotplugin import PlotPlugin from ..canvastools import ThickLineTool @@ -65,7 +64,7 @@ class LineProfile(PlotPlugin): on_change=self.line_changed) self.line_tool.end_points = np.transpose([x, y]) - scan_data = measure.profile_line(image, + scan_data = measure.profile_line(image, *self.line_tool.end_points[:, ::-1]) self.scan_data = scan_data if scan_data.ndim == 1: diff --git a/skimage/viewer/plugins/overlayplugin.py b/skimage/viewer/plugins/overlayplugin.py index 63ff61a3..eb94baa3 100644 --- a/skimage/viewer/plugins/overlayplugin.py +++ b/skimage/viewer/plugins/overlayplugin.py @@ -1,11 +1,11 @@ from warnings import warn -from skimage.util.dtype import dtype_range +from ...util.dtype import dtype_range from .base import Plugin from ..utils import ClearColormap, update_axes_image import six -from skimage._shared.version_requirements import is_installed +from ..._shared.version_requirements import is_installed __all__ = ['OverlayPlugin'] diff --git a/skimage/viewer/viewers/core.py b/skimage/viewer/viewers/core.py index 19112dc1..b85a028f 100644 --- a/skimage/viewer/viewers/core.py +++ b/skimage/viewer/viewers/core.py @@ -2,14 +2,14 @@ ImageViewer class for viewing and interacting with images. """ -from skimage.viewer.qt import QtWidgets, Qt, Signal -from skimage import io, img_as_float -from skimage.util.dtype import dtype_range -from skimage.exposure import rescale_intensity import numpy as np +from ... import io, img_as_float +from ...util.dtype import dtype_range +from ...exposure import rescale_intensity +from ..qt import QtWidgets, Qt, Signal from ..widgets import Slider -from ..utils import ( - dialogs, init_qtapp, figimage, start_qtapp, update_axes_image) +from ..utils import (dialogs, init_qtapp, figimage, start_qtapp, + update_axes_image) from ..plugins.base import Plugin diff --git a/skimage/viewer/widgets/history.py b/skimage/viewer/widgets/history.py index ba0f0cd3..3b7f58b0 100644 --- a/skimage/viewer/widgets/history.py +++ b/skimage/viewer/widgets/history.py @@ -4,7 +4,7 @@ from ..qt import QtGui, QtCore import numpy as np import skimage -from skimage import io +from ... import io, img_as_ubyte from .core import BaseWidget from ..utils import dialogs @@ -87,7 +87,7 @@ class SaveButtons(BaseWidget): image = self.plugin.filtered_image if image.dtype == np.bool: #TODO: This check/conversion should probably be in `imsave`. - image = skimage.img_as_ubyte(image) + image = img_as_ubyte(image) io.imsave(filename, image)