Исправление недостающих границ в изображении в MATLAB

Допустим, у меня есть целочисленная матрица, такая как отображаемая:

color-coded image

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

Есть ли эффективный способ добавления недостающих темных границ в MATLAB? (белые кружки показывают примеры мест, где границы отсутствуют).

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

Обратите внимание, что решение обязательно обратит ненулевые значения к 0.

Рассматриваемая матрица имеет тип uint32 (отображается цветом выше).

РЕДАКТИРОВАТЬ: Исходное изображение находится здесь:

enter image description here

5
задан Amelio Vazquez-Reina 4 August 2011 в 00:25
поделиться