Merge pull request #1 from radarhere/autocontrast

Updated documentation; Simplified code
This commit is contained in:
Hamza 2020-07-02 19:20:23 +05:00 committed by GitHub
commit 407d592743
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 10 deletions

View File

@ -305,11 +305,9 @@ def test_exif_transpose():
def test_autocontrast_cutoff(): def test_autocontrast_cutoff():
# Test the cutoff argument of autocontrast # Test the cutoff argument of autocontrast
with Image.open("Tests/images/bw_gradient.png") as img: with Image.open("Tests/images/bw_gradient.png") as img:
assert (
ImageOps.autocontrast(img, cutoff=10).histogram() def autocontrast(cutoff):
== ImageOps.autocontrast(img, cutoff=(10, 10)).histogram() return ImageOps.autocontrast(img, cutoff).histogram()
)
assert ( assert autocontrast(10) == autocontrast((10, 10))
ImageOps.autocontrast(img, cutoff=10).histogram() assert autocontrast(10) != autocontrast((1, 10))
!= ImageOps.autocontrast(img, cutoff=(1, 10)).histogram()
)

View File

@ -70,7 +70,9 @@ def autocontrast(image, cutoff=0, ignore=None):
becomes white (255). becomes white (255).
:param image: The image to process. :param image: The image to process.
:param cutoff: How many percent to cut off from the histogram. :param cutoff: The percent to cut off from the histogram on the low and
high ends. Either a tuple of (low, high), or a single
number for both.
:param ignore: The background pixel value (use None for no background). :param ignore: The background pixel value (use None for no background).
:return: An image. :return: An image.
""" """
@ -105,7 +107,7 @@ def autocontrast(image, cutoff=0, ignore=None):
cut = 0 cut = 0
if cut <= 0: if cut <= 0:
break break
# remove cutoff% samples from the hi end # remove cutoff% samples from the high end
cut = n * cutoff[1] // 100 cut = n * cutoff[1] // 100
for hi in range(255, -1, -1): for hi in range(255, -1, -1):
if cut > h[hi]: if cut > h[hi]: