[SciPy-user] signal.medfilt

Zachary Pincus zachary.pincus@yale....
Thu Oct 16 07:22:14 CDT 2008

Hi Priya,

I think the problem may be that you aren't properly reading in the  
images... unless you've got some other code that is overriding the  
builtin python 'file' function, then the following simply reads in the  
bits from a png file into a string, without decoding/decompressing/etc  
the file into a numpy array:

> img = file('girl.png','rb').read()

As such, it's no surprise that a function which works on numpy arrays  
is choking when fed a string.

You'll need to get some sort of image IO library to read PNGs. My  
suggestion would be to look into PIL, the Python Imaging Library,  
which can read images and be used to produce numpy arrays from them.

Once you are able to read in images, I also suggest looking at  
scipy.ndimage, which provides useful image manipulation tools.


On Oct 16, 2008, at 4:53 AM, priya_tmsi wrote:

> I am trying to write a code for median filter using scipy
> the following is my code
> from numpy import *
> import ImageFilter
> from scipy import *
> import scipy.signal as signal
> img = file('girl.png','rb').read()
> imgDest=signal.medfilt(img)
> f1 = file( 'pygirl.png').write(imgDest)
> I get the following error on running this code
> Traceback (most recent call last):
>  File "medfilt.py", line 6, in ?
>    imgDest=signal.medfilt(img)
>  File "/usr/lib/python2.4/site-packages/scipy/signal/ 
> signaltools.py", line
> 232, in medfilt
>    return sigtools._order_filterND(volume,domain,order)
> ValueError: data type must provide an itemsize
> Can any one help please...:,(:,(
> -- 
> View this message in context: http://www.nabble.com/signal.medfilt-tp20009033p20009033.html
> Sent from the Scipy-User mailing list archive at Nabble.com.
> _______________________________________________
> SciPy-user mailing list
> SciPy-user@scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user

More information about the SciPy-user mailing list