From 56b4ba67e617117b88d8a9b75535e5957995bbc4 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Mon, 10 Sep 2012 22:47:10 -0700 Subject: [PATCH 1/2] ENH: Bool dtype conversion speed improvements. --- skimage/util/dtype.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/skimage/util/dtype.py b/skimage/util/dtype.py index 518ebf18..2b971b9c 100644 --- a/skimage/util/dtype.py +++ b/skimage/util/dtype.py @@ -155,11 +155,14 @@ def convert(image, dtype, force_copy=False, uniform=False): if kind_in in "fi": sign_loss() prec_loss() - return dtype(image) - + return image > dtype_in(0) + if kind_in == 'b': # from binary image, to float and to integer - return dtype(image) * dtype(dtype_range[dtype][1]) + result = dtype(image) + if kind != 'f': + result *= dtype(dtype_range[dtype][1]) + return result if kind in 'ui': imin = np.iinfo(dtype).min From 8494a1888266bd23b03aead8db7521f9f4d20263 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Mon, 10 Sep 2012 23:13:14 -0700 Subject: [PATCH 2/2] Conversion to bool: threshold on half dtype max. --- skimage/util/dtype.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skimage/util/dtype.py b/skimage/util/dtype.py index 2b971b9c..eef7f478 100644 --- a/skimage/util/dtype.py +++ b/skimage/util/dtype.py @@ -155,7 +155,7 @@ def convert(image, dtype, force_copy=False, uniform=False): if kind_in in "fi": sign_loss() prec_loss() - return image > dtype_in(0) + return image > dtype_in(dtype_range[dtype_in][1] / 2) if kind_in == 'b': # from binary image, to float and to integer