- GitHub Реализация Python: https://github.com/Chloe1997/Connected-component-labeling
- Осмотр свинцовой рамы
вступление
В этом семестре я прохожу курсы по машинному зрению. Здесь я запишу, что я сделал для своего промежуточного экзамена.
Вот среднесрочный проект:
Осмотр выводной рамки
Входные данные представляют собой изображение выводной рамки, а выходные данные должны включать:
(1) Количество и диаметр круглых отверстий
(2) Ширина всех отведений
(3) Угол наклона направляющей рамы
Пример изображения:
Введите изображение и отобразите на экране
- Тестовое изображение: 103x67
- используя матплотлиб
RGB2Gray и Gray2Binary
Определение соседства — отношение 4 соседей
Connected-component_labeling — алгоритм последовательной маркировки
идея алгоритма последовательной маркировки:
- Сканирование изображения слева направо, а затем сверху вниз
#Первое сканирование
2. Если значение пикселя равно 1, то Проверить соседей:
(1) Если соседние метки равны 0: создать новую метку
(2) Если одна из соседних меток не равна нулю:
- метка соседа имеет такую же метку: этот пиксель имеет ту же метку, что и его сосед
- соседняя метка имеет другую метку: этот пиксель следует за самой маленькой меткой и записывает взаимосвязь между различными метками.
- только одна соседняя метка имеет ненулевое значение: этот пиксель следует за ненулевой соседней меткой
(3) Замените метку, проверив взаимосвязь между метками.
#Второе сканирование