> mask = numpy.zeros(medical_image.shape, dtype="uint16") > mask[ numpy.logical_and( medical_image >= lower, medical_image <= > upper)] = 255 > > Where lower and upper are the threshold bounds. Here I' m marking the > array positions where medical_image is between the threshold bounds > with 255, where isn' t with 0. The question is: Is there a better > way to do that?
This will give you a True/False boolean mask: mask = numpy.logical_and( medical_image >= lower, medical_image <= upper) And this a 0/255 mask: mask = 255*numpy.logical_and( medical_image >= lower, medical_image <= upper) You can make the code a bit more terse/idiomatic by using the bitwise operators, which do logical operations on boolean arrays: mask = 255*((medical_image >= lower) & (medical_image <= upper)) Though this is a bit annoying as the bitwise ops (& | ^ ~) have higher precedence than the comparison ops (< <= > >=), so you need to parenthesize carefully, as above. Zach On Dec 2, 2010, at 7:35 AM, totonixs...@gmail.com wrote: > Hi all, > > I' m developing a medical software named InVesalius [1], it is a free > software. It uses numpy arrays to store the medical images (CT and > MRI) and the mask, the mask is used to mark the region of interest and > to create 3D surfaces. Those array generally have 512x512 elements. > The mask is created based in threshold, with lower and upper bound, > this way: > > mask = numpy.zeros(medical_image.shape, dtype="uint16") > mask[ numpy.logical_and( medical_image >= lower, medical_image <= > upper)] = 255 > > Where lower and upper are the threshold bounds. Here I' m marking the > array positions where medical_image is between the threshold bounds > with 255, where isn' t with 0. The question is: Is there a better way > to do that? > > Thank! > > [1] - svn.softwarepublico.gov.br/trac/invesalius > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion