Используйте морфологическое открытие, чтобы извлечь функции изображения

Можно использовать морфологическое отверстие, чтобы удалить небольшие предметы из изображения с сохранением формы и размера больших объектов в изображении.

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

Откройте изображение в один шаг

Можно использовать imopen функция для выполнения эрозии и расширения за одну стадию.

Прочтите изображение в рабочую область и отобразите его.

BW1 = imread('circbw.tif');
figure
imshow(BW1)

Figure contains an axes. The axes contains an object of type image.

Создайте элемент структурирования. Элемент структурирования должен быть достаточно большим, чтобы удалить линии, когда вы размываете изображение, но недостаточно большим, чтобы удалить прямоугольники. Он должен состоять из всех 1s, поэтому он удаляет все, кроме больших смежных закрашенных фигур пикселей переднего плана.

SE = strel('rectangle',[40 30]);

Откройте изображение.

BW2 = imopen(BW1, SE);
imshow(BW2);

Figure contains an axes. The axes contains an object of type image.

Откройте изображение, выполнив эрозию, а затем расширение

Можно также выполнять эрозию и расширение последовательно.

Размыть изображение с помощью элемента структурирования. Это удаляет все линии, но также сжимает прямоугольники.

BW3 = imerode(BW1,SE);
imshow(BW3)

Figure contains an axes. The axes contains an object of type image.

Чтобы восстановить прямоугольники до их исходных размеров, расширьте эродированное изображение с помощью того же элемента структурирования, SE.

BW4 = imdilate(BW3,SE);
imshow(BW4)

Figure contains an axes. The axes contains an object of type image.

При последовательном выполнении операций у вас есть гибкость в изменении элемента структурирования. Создайте другой элемент структурирования и расширьте эродированное изображение с помощью нового элемента структурирования.

SE = strel('diamond',15);
BW5 = imdilate(BW3,SE);
imshow(BW5)

Figure contains an axes. The axes contains an object of type image.

См. также

| | | |

Похожие темы