En Tue, 01 May 2007 11:22:28 -0300, Ashok <[EMAIL PROTECTED]> escribió:
> IDL language contains a function called BYTSCL to scale all values of
> Array that lie in the range (Min £ x £ Max) into the range (0 £ x £
> Top). Is there a similar function available in python?
>
> I need this to scale the pixel values of an image using PIL.
Maybe PIL contains something built in, but if all else fails, you could
write it in Python:
def bytsclGen(data, minvalue=None, maxvalue=None, top=255):
if minvalue is None: minvalue = min(data)
if maxvalue is None: maxvalue = max(data)
for x in data:
if x<minvalue: yield 0
elif x>maxvalue: yield top
else: yield (x-minvalue)*top/(maxvalue-minvalue)
def bytscl(data, minvalue=None, maxvalue=None, top=255):
return list(bytsclGen(data, minvalue, maxvalue, top))
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list