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

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

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

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

Можно использовать 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.

Смотрите также

| | | |

Похожие темы