У меня есть вопрос о том, как рассчитать значение пикселя.
Например, я беру 3x3 пикселя и мне нужно заказать и выбрать pixel[4]
, чтобы применить медианный фильтр.
Как рассчитать значение этих пикселей по порядку?
Упорядочить ли каждый канал (RGB), а затем выбрать средний член каждого и поместить значение в пиксель?
Или мне нужно сложить 3 канала?
Я нашел в сети код с PIL на python, но я не понимаю, как работает функция members.sort ()
def FiltroMediana(path):
img = Image.open(path)
members = [(0, 0)] * 9
width, height = img.size
newimg = Image.new("RGB", (width, height), "white")
for i in range(1, width - 1):
for j in range(1, height - 1):
members[0] = img.getpixel((i - 1, j - 1))
members[1] = img.getpixel((i - 1, j))
members[2] = img.getpixel((i - 1, j + 1))
members[3] = img.getpixel((i, j - 1))
members[4] = img.getpixel((i, j))
members[5] = img.getpixel((i, j + 1))
members[6] = img.getpixel((i + 1, j - 1))
members[7] = img.getpixel((i + 1, j))
members[8] = img.getpixel((i + 1, j + 1))
members.sort()
newimg.putpixel((i, j), (members[4]))
newimg.save("MedianFilterPIL.png", "PNG")
newimg.show()