From f35cd7aa3af8ab35f6fbc598c32682b86b3fd9c7 Mon Sep 17 00:00:00 2001 From: Olivier Debeir Date: Tue, 16 Oct 2012 11:13:09 +0200 Subject: [PATCH] fix error in autolevel and percentile autolevel (16bit) --- skimage/rank/_crank16_percentiles.pyx | 2 +- skimage/rank/tests/demo_single.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/skimage/rank/_crank16_percentiles.pyx b/skimage/rank/_crank16_percentiles.pyx index b270965b..4fa3661c 100644 --- a/skimage/rank/_crank16_percentiles.pyx +++ b/skimage/rank/_crank16_percentiles.pyx @@ -33,7 +33,7 @@ cdef inline np.uint16_t kernel_autolevel(Py_ssize_t* histo, float pop, np.uint16 delta = imax-imin if delta>0: - return (255*(int_min(int_max(imin,g),imax)-imin)/delta) + return (1.0*(maxbin-1)*(int_min(int_max(imin,g),imax)-imin)/delta) else: return (imax-imin) else: diff --git a/skimage/rank/tests/demo_single.py b/skimage/rank/tests/demo_single.py index 96f1fbeb..b601b226 100644 --- a/skimage/rank/tests/demo_single.py +++ b/skimage/rank/tests/demo_single.py @@ -16,15 +16,22 @@ if __name__ == '__main__': f16= rank.autolevel(a16,selem) f16p= rank.percentile_autolevel(a16,selem,p0=.0,p1=1.) - print f8==f16 + print f16==f16p plt.figure() - plt.subplot(1,2,1) + plt.subplot(1,3,1) plt.imshow(f16) - plt.subplot(1,2,2) + plt.colorbar() + plt.subplot(1,3,2) + plt.imshow(f16p) + plt.colorbar() + plt.subplot(1,3,3) plt.imshow(f16p-f16) + plt.colorbar() plt.show() + print f16 + print f16p