mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-08-09 23:04:45 +03:00
Update ImageFilter.py
added Scobel Filter for higher noise robustness and better edge detection. working on nonlinear filters.... coming soon... ...tested with relatively big Images have not given Memory Errors... use it as follows: im = Image.fromarray(Iarray).convert("RGBA") # or from file.... im3 = ImageFilter.Sobel().filter(im) im3.show()
This commit is contained in:
parent
926a08cdb3
commit
31688c76b6
|
@ -16,7 +16,7 @@
|
|||
#
|
||||
|
||||
import functools
|
||||
|
||||
from PIL import _imaging as core
|
||||
|
||||
class Filter(object):
|
||||
pass
|
||||
|
@ -157,7 +157,8 @@ class GaussianBlur(Filter):
|
|||
|
||||
|
||||
class UnsharpMask(Filter):
|
||||
"""Unsharp mask filter.
|
||||
"""
|
||||
Unsharp mask filter.
|
||||
|
||||
See Wikipedia's entry on `digital unsharp masking`_ for an explanation of
|
||||
the parameters.
|
||||
|
@ -180,6 +181,22 @@ class UnsharpMask(Filter):
|
|||
def filter(self, image):
|
||||
return image.unsharp_mask(self.radius, self.percent, self.threshold)
|
||||
|
||||
class Sobel(Filter):
|
||||
|
||||
"""
|
||||
Using the Scobeloperator to integrate perpendicular towards the direction of the derivative.
|
||||
This is good for getting rid of disturbances.
|
||||
"""
|
||||
name = "Scobel"
|
||||
|
||||
def __init__(self, size=3):
|
||||
self.size = size
|
||||
|
||||
def filter(self, image):
|
||||
im1 = image.filter( SOBEL1 )
|
||||
im2 = image.filter( SOBEL2 )
|
||||
|
||||
return image._new(core.blend(im1.im, im2.im, 0.5))
|
||||
|
||||
class BLUR(BuiltinFilter):
|
||||
name = "Blur"
|
||||
|
@ -273,3 +290,19 @@ class SHARPEN(BuiltinFilter):
|
|||
-2, 32, -2,
|
||||
-2, -2, -2
|
||||
)
|
||||
|
||||
class SOBEL1(BuiltinFilter):
|
||||
name = "Sobel_1"
|
||||
filterargs = (3, 3), 1, 255, (
|
||||
-1, 0, 1,
|
||||
-2, 0, 2,
|
||||
-1, 0, 1
|
||||
)
|
||||
|
||||
class SOBEL2(BuiltinFilter):
|
||||
name = "Sobel_2"
|
||||
filterargs = (3, 3), 1, 255, (
|
||||
-1, -2, -1,
|
||||
0, 0, 0,
|
||||
1, 2, 1
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user