Hello, I try to threshold an image manually by using a slider widget to set the threshold value (I don’t binarize my image, but mask it). I superimpose my thresholded image to the original according to a colormap.
I cannot figure out why if I put the initial threshold to the max value of my original image, my thresolded one is monochrome while with another initial value, it follows the colormap. Here is my code (change `f0 = gray_data.max()` to `f0 = gray_data.max() / 2` to see the difference): ''' import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider # Generate some data... gray_data = np.arange(10000).reshape(100, 100) fig, ax = plt.subplots() fig.subplots_adjust(bottom=0.25) ax.matshow(gray_data, cmap=plt.cm.gray) axcolor = 'lightgoldenrodyellow' axthresh = fig.add_axes([0.25, 0.1, 0.65, 0.03], axisbg=axcolor) f0 = gray_data.max() sthresh = Slider(axthresh, 'threshold', gray_data.min(), gray_data.max(), valinit=f0) mask = gray_data < f0 masked = np.ma.array(gray_data, mask=mask) masked_ax = ax.imshow(masked, alpha=0.5) def update(val): threshold = sthresh.val mask = gray_data < threshold masked.mask = mask masked_ax.set_data(masked) fig.canvas.draw_idle() sthresh.on_changed(update) plt.show() ''' Thank you for your help. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users