Функции > Обработка изображений > Извлечение элемента > Пример: Маркировка связанных компонентов
Пример: Маркировка связанных компонентов
Используйте функцию 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, чтобы сохранить цвет компонента.
Было ли это полезно?