Hi all,
I'm tring to implement a sobel filter using PIL library with few success.
Now I never used this library before so any help is appreciate.
I wrote the following code that essential is a standard implementation
of the sobel filter:
input img, output dimg:
dx = [-1, 0, 1, -2, 0, 2, -1, 0, 1]
dy = [-1, -2, -1, 0, 0, 0, 1, 2, 1]
ximg = img.filter(ImageFilter.Kernel((3,3), dx, None, 0)) #apply the
kernel in x e y
yimg = img.filter(ImageFilter.Kernel((3,3), dy, None, 0))
dimg = img.copy()
dest = dimg.load()
xdata = ximg.load() #retrieve the x e y data
ydata = yimg.load()
for y in range ( img.size[1]): # calcolo il gradiente per ogni
punto
for x in range( img.size[0]):
# dest[x, y] = sqrt( xdata[x, y] * xdata[x, y] + ydata[x, y] *
ydata[x, y])
dest[x, y] = abs( xdata[x, y] ) + abs (ydata[x, y])
The result is not what I expected, so I misunderstood some function usage?
_______________________________________________
Image-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/image-sig