У меня есть сегментирующие маски с индексированными цветами. К сожалению, на краях объектов есть (цветной) шум. При переходе от одной цветовой области к другой существуют небольшие области пикселей в разных цветах, разделяющие две цветовые области (вызванные преобразованием прозрачных пикселей по краям).Как удалить/переназначить небольшие пиксельные области (по краям) из цветных изображений? (MATLAB)
Я хочу, чтобы удалить этот шум (с MATLAB), назначая цвет одной из соседних крупных регионов. Не имеет значения, какой из них - главное, чтобы удалить небольшие участки. Можно предположить, что небольшие области ЛЮБОГО цвета могут быть удалены таким образом (переназначить в соседнюю большую область).
В случае двоичного изображения, я мог бы использовать bwareaopen
(предлагается в этом Q & A: Remove small chunks of labels in an image). Преобразование изображения в двоичное изображение для каждого цвета может быть обходным путем, однако это дорого (для многих цветов) и оставляет вопрос о переназначении открытым. Надеюсь, есть более элегантные способы сделать это.
Как вы назначаете индексы в первую очередь? Вы не должны использовать интерполяцию или что-либо, что приведет к недействительным индексам. Возможно, сделайте шаг назад и исправьте задание, а не пост-обработку результата. – Suever
Это отличная идея, и если бы я сам сделал маркировку, я бы избегал прозрачности при сегментировании изображений. Так как теперь мне нужно работать с указанными метками, это не вариант:/ – Honeybear
Итак, у вас есть индексированные значения '[1, 2, 3]' например? – Suever