Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplom_robot-khudozhnik_magisr ноавййй.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
6.28 Mб
Скачать

4.1.1.2. Методы обработки

Коммерческие пакеты программ для машинного зрения и пакеты программ с открытым исходным кодом обычно включают в себя ряд методов обработки изображений, таких как:

  • Счетчик пикселей: подсчитывает количество светлых или темных пикселей

  • Бинаризация: преобразует изображение в серых тонах в бинарное ( белые и черные пиксели)

  • Сегментация: используется для поиска и/или подсчета деталей

      • Поиск и анализ блобов: проверка изображения на отдельные блобы связанных пикселей ( например ,черной дыры на сером объекте) в виде опорных точек изображения. Эти блобы часто представляют цели для обработки, захвата или производственного брака.

      • Надежное распознавание по шаблонам: поиск по шаблону объекта, который может быть повернут ,частично скрыт другим объектом, или отличным по размеру.

  • Чтение штрих – кодов: декорирование 1D и 2D кодов, разработанных для считывания или сканирования машинами

  • Оптическое распознавание символов: автоматизированное чтение текста, например, серийных номеров

  • Измерение: измерение размеров объектов в дюймах или миллиметрах

  • Обнаружение краев: поиск краев объектов

  • Сопоставление шаблонов: поиск, подбор, и/или подсчет конкретных моделей

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

4.1.1.3. Применение машинного зрения.

Применение машинного зрения разнообразно, оно охватывает различные области деятельности, включая, но не ограничиваясь следующими:

  • Крупное промышленное производство

  • Ускоренное производство уникальных продуктов

  • Системы безопасности в промышленных условиях

  • Контроль предварительного изготовления объектов ( например ,контроль качества, исследование допущенных ошибок)

  • Системы визуального контроля и управления ( учет, считывание штрих-кодов)

  • Контроль автоматизированных транспортных средств

  • Контроль качества и инспекция продуктов питания

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

Машинное зрение (техническое зрение) относится к инженерным автоматизированным системам визуализации в промышленности и на производстве, и в этом качестве машинное зрение связано с самыми разными областями компьютерных наук: компьютерное зрение является более общей областью исследований, тогда как машинное зрение является инженерной дисциплиной связанной с производственными задачами.

4.1.3 Система rgb.

Цветное изображение состоит из трех цветов: синего, зеленого и красного. Это, так называемая система RGB ( от английского Red, Green, Blue). Она принята во всем мире и все устройства – компьютеры, телефоны, мониторы и т.д. ее поддерживают. Белый цвет, как известно, состоит из всех трех цветов, однако стоит нам уменьшить уровень одного из них, как получим совершенно другой результирующий цвет. Уровни принято изменять в пределах от 0 до 1.

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

Рис. 4.1 – принцип работы RGB системы.

На рисунке 4.1 выделенный фрагмент изображения содержит пиксель ( его значения в матрицах помечены черным), имеющий результирующий цвет состоящий из 0,5176 красного, 0,1608 зеленого и 0,0627 синего.

В поставленной задаче работа ведется с черно-белым изображением, так как манипулятор рисует карандашом. Значит нет необходимости обрабатывать «тяжелые» цветные изображения, поэтому производится перевод цветного изображения в черно – белое. В MATLAB есть встроенная функция rgb2gray. Она позволяет перевести любое цветное изображение в черно-белое в оттенках серого.

Черно – белые изображения представлены в виде матрицы, каждый элемент которой описывает величину яркости. Величины изменяются от 0 до 255, 0 – это полностью черный пиксель, 255 – полностью белый пиксель.

Теперь необходимо, чтобы программа нашла линии на изображении. Для этого есть функция edge, которая находит на изображении грани. Работает она, в общем виде, следующим образом: если в матрице изображения встречаются области с резким перепадом уровня света, то функция распознает это как грань какого либо объекта или линии на изображении.

Например, если фон приблизительно одинаков по уровню и колеблется где-то от 16 до 30, то объект на изображении более яркий и уровни света колеблются в районе 150. Соответственно, функция распознает край объекта как линию. Результатом работы функции будет двоичное изображение. Двоичное изображение – это изображение, пиксели которого принимают только два значения: 0 – (черный цвет ) и 1 – (белый цвет). На нашем двоичном изображении после работы функции edge будет видна белая линия границы всех контрастных объектов (рис. 4.2).

Таким образом, результирующая матрица содержит единицы в тех пикселях где найдены линии на изображении, и нули где их, соответственно нет.

Рис.4.2 – линии найденные на изображении.

Следующая задача, которая возникает: последовательный вывод координат линий. Т.е. нужно, чтобы карандаш прорисовывал линию не отрываясь, от начала до конца. Единственно верное решение в таком случае – последовательное следование по пикселям линии до ее конца. Для этого в программе введена еще одна двоичная матрица, такого же размера как и наше двоичное изображение с линиями, только заполнена она нулями полностью. Называется она mask – это видно в коде программы.

Нужно будет последовательно просматривать матрицу с линиями. Почленно. По-порядку, пиксель за пикселем. При этом в матрице mask будем ставить единицы на тех местах, на которых в матрице с линиями уже пробовали. Таким образом, сверяясь с матрицей mask, исключим повторное просматривание тех пикселей, где уже побывали. Так мы идем постепенно, пока не наткнемся на линию. После этого начинает работать функция прорисовки линии DrawLine.

Функция DrawLine начинает просмотр всех 8 рядом находящихся пикселей начала линии. Начинается осмотр справа по часовой стрелке. Если функция натыкается на соседний пиксель линии, то она передает свои текущие координаты в командное окно и перескакивает на новый пиксель, далее процесс повторяется, таким образом мы последовательно выводим в командное окно координаты линии. При этом также заполняется матрица mask, и точно так же все перемещения сверяются по ней и программа не передаст одни и те же координаты дважды. Как только функция доходит до конца линии ( нет больше рядом находящихся пикселей) ,то процесс выполнения программы возвращается к построчному просмотру изображения и поиску следующей линии. При этом все пиксели в которых побывали обе эти функции помечены в матрице mask. Т.е. те линии координаты которых уже выведены не принимаются в дальнейший поиск.

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

Принцип таков: градируем все изображение в строго определенные уровни. Так как каждый пиксель черно-белого изображения может принимать значение от 0 до 255, мы берем эту разницу и делим на пример на 10 промежутков. От 0 до 25, от 26 до 50 и т.д. В коде программы это переменная NOGrades, которая определяет количество таких интервалов. Далее просматриваем каждый пиксель черно-белого изображения и смотрим в какой интервал он попадает. После того как определили интервал , приравниваем его ( пиксель) значение к середине интервала. Таким образом, пиксели в нашем изображении принимают строго определенные значения.

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

Рис.4.3 – линии областей штриховки

Процесс вывода координат линий точно такой же как и вывода координат обычных линий изображения. Таким образом нет необходимости выводить координаты тех пикселей у которых расстояние меньше трех пикселей. Все координаты и так выводятся правильно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]