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

Reply via email to