18. ImageFilter RankFilter


18.1. RankFilter

Use the Image.filter(ImageFilter.RankFilter(size, rank)) method to use the chosen rank of pixel values in a pixel area given by the size.
The rank filter sorts all pixels in a window of the given size, and returns the rank’th value.
size - The kernel size, in pixels.
rank - What pixel value to pick. Use 0 for a min filter, size * size / 2 for a median filter, size * size - 1 for a max filter, etc.
from PIL import Image, ImageFilter


with Image.open("test_images/river_valley.jpg") as im:
    new_im = im.filter(ImageFilter.RankFilter(size=3, rank=1))
    new_im.save("filters/RankFilter1.png")
    new_im = im.filter(ImageFilter.RankFilter(size=3, rank=2))
    new_im.save("filters/RankFilter2.png")
../_images/compare_RankFilter.png