The error basically says that the type of the elements in your image array is 32 bit float, not integer, which is required. The docs also say that this method requires unsigned int. See here.
To convert a numpy array to unsigned 8 bit integers, do the following:
# Assuming I is your image. Convert to 8 bit unsigned integers.
I_uint8 = I.astype('uint8')
UPDATE: Please see comment by Mahotas' creator below on the issue of multi-channel images.