Упорядочение пикселей в медианный фильтр - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть вопрос о том, как рассчитать значение пикселя.

Например, я беру 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()

1 Ответ

0 голосов
/ 26 февраля 2019

Не существует "хорошего" способа применить медианный фильтр к цветному изображению.

  • отдельная фильтрация трех плоскостей создает новые цвета, которых не было на изображении,

  • фильтрация истинного цвета достигается путем нахождения цвета, который минимизирует общее расстояние до других;но это отнимает много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...