Как я могу сгладить сегментированные капли? - PullRequest
0 голосов
/ 21 декабря 2018

Я получаю некоторые мерцания (резкие линии) вдоль сегментированной капли.Как я могу уменьшить их, чтобы сделать границу более гладкой?Для большей ясности я приложил изображение с вводом и ожидаемым выводом.

Обратите внимание, что это двоичное изображение, и у меня нет необработанного изображения (серого).Ввод двоичный.

Я пробовал размытие по Гауссу, но этот метод уменьшает мою форму.

mask = ndimage.filters.gaussian_filter(mask, 0.5, order=0, output=None, mode='reflect', cval=0.0, truncate=5.0)

example input and expected output, as described above

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Чтобы развернуть Ответ MBo :

Открытие должно быть применено с помощью элемента структурирования диска (ядра) для предотвращения направленного смещения.

Размер дискаопределяет, сколько артефактов будет удалено.Ниже приведен пример изображения из OP (слева) и 5 ​​результатов открытия, с диаметрами 7, 9, 11, 13 и 15 пикселей.Мне кажется, что для этого случая лучше всего использовать 13 или 15 пикселей, хотя при 15 пикселях может быть также удалено больше деталей.Фильтрация шума - это всегда компромисс между удалением шума и сохранением деталей.Чем больше шума удаляется, тем больше деталей удаляется.

example image from OP with possible outputs

SciPy ndimage имеет отверстие , чтобы применить егос элементом структурирования диска сделайте следующее:

diameter = 15
radius = diameter // 2
x = np.arange(-radius, radius+1)
x, y = np.meshgrid(x, x)
r = x**2 + y**2
se = r < radius**2
ndimage.binary_opening(img, se)

В этом коде мы сначала создаем одномерный массив x, который указывает расстояние от середины.np.meshgrid берет этот массив и создает два 2D-массива (изображения), содержащие координаты x и y с началом координат в середине изображения.Следующая строка вычисляет r, квадрат расстояния до начала координат.Наконец, мы можем получить структурирующий элемент se как все пиксели в пределах radius от начала координат.

Вполне возможно, что OpenCV имеет более простой способ применения отверстия с диском.Я предлагаю SciPy ndimage, потому что именно это используется в OP.

0 голосов
/ 21 декабря 2018

Если ваши дефекты изображения достаточно тонкие, вы можете попробовать морфологические операции: размывание, затем расширение для восстановления общей формы (с тем же размером ядра).Эта последовательность операций эквивалентна открытию morphologyEx

enter image description here

Обратите внимание, что кромка капли будет более гладкой, но иногда могут возникать нежелательные особенности (вообще невозможно улучшить произвольную картинку без каких-либо искажений)

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