Функции > Обработка изображений > Извлечение элемента > Пример: Маркировка связанных компонентов
  
Пример: Маркировка связанных компонентов
Используйте функцию concomp для выполнения маркировки связанных компонентов изображения. Два пиксела считаются связанными, если они имеют одинаковые значения. Связность может иметь значение 4 (только горизонтальные и вертикальные соседи) или 8 (горизонтальные, вертикальные и диагональные соседи). Связанные компоненты являются полезным способом для автоматизации распознавания элементов изображения, границ и пустот в изображении.
Сведения об использовании этого примера см. в разделе Сведения о примерах обработки изображений.
1. Определите входную матрицу.
Нажать для копирования этого выражения
2. Определите значение интенсивности целевого переднего фона.
Нажать для копирования этого выражения
3. Выполните маркировку связанных компонентов, используя первый тип связности.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
В данном случае существуют два четырехсвязных компонента со значением пиксела 100.
4. Выполните маркировку связанных компонентов, используя второй тип связности.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
В данном случае существует только один 8-связный компонент со значением пиксела 100.
5. Изучите влияние маркировки связанных компонентов на бинарное изображение, заданное двумерной функцией sinc.
Нажать для копирования этого выражения
6. Задайте переменные диапазонов.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
7. Задайте диапазоны значений.
Нажать для копирования этого выражения
8. Задайте матрицу изображения.
Нажать для копирования этого выражения
9. Задайте порог, используйте функцию binarize, чтобы перевести матрицу изображения в двоичный формат, а затем используйте функцию WRITEBMP, чтобы записать изображение в файл.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(cc_binarized.bmp)
10. Задайте значение интенсивности переднего фона и тип связности, а затем примените к изображению алгоритм маркировки связанных компонентов.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Подсчитывая отдельные области изображения, алгоритм предполагает определить 9 уникальных связанных компонентов в этом изображении.
11. Подсчитайте число компонентов, найденных алгоритмом.
Нажать для копирования этого выражения
12. Определите матрицу цветовой палитры, а затем используйте функцию gray_to_rgb для преобразования матрицы с оттенками серого в цветную матрицу. Это позволит взглянуть на изображение со связанными компонентами, используя фиктивный цвет для усиления видимости компонентов.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(color_d.bmp)
Матрица colormap с 4 столбцами задает в первом столбце интенсивность оттенков серого, а значения RGB — во втором, третьем и четвертом столбцах соответственно.
13. Используйте функцию norm1, чтобы вычислить размер 9 компонентов.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
14. Извлеките из этого изображения наибольший отдельный компонент (индекс 3, размер 35 пикселов) и отобразите его опять же с фиктивным цветом.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
15. Используйте функцию WRITERGB, чтобы записать изображение в файл.
Нажать для копирования этого выражения
(cimg_3.bmp)
Матрица comp является матрицей размерности 101 x 101, заполненной нулями за исключением тех элементов, которые соответствуют наибольшему компоненту. Значения пикселов матрицы comp умножены на 3, чтобы сохранить цвет компонента.