Автореферат (1152211), страница 2
Текст из файла (страница 2)
4 3 2 Рис. ! расположение близлежащих пикселей на 1-ой и1-ой итерациях Для обхода всех пикселей изображения необходимо использовать двойной вложенный цикл, где внешний цикл итерируется по 1 от О до Н, где Н вЂ” количество пикселей по вертикали, внутренний цикл итерируется по1 от О до И~, где И' — количество пикселей по горизонтали. На каждой итерации происходит вызов функции де~РАггау(ц), которой в качестве входных параметров передаются значения 1, 1. Данная функция возвращает массив Р, состоящий из восьми элементов, которые содержат данные о цвете восьми пикселей, лежащих в окрестности пнкселя с координатами ~, 1.(рис. 2, а). Значение градиента вычисляется при помощи функции вел(Р), которой в качестве входного параметра передается массив Р (рис. 2, 6).
Рассчитывается значение переменных дх и яу по следующим формулам: дх (Рз + 2Рз + Р~ ) (Ра + 2Р7 + Р6 ) ' (() ЯУ = 0'в + 2Рт + Рз )- (Р6 + 2Рз + Р4 ) (2) Полученное значение градиента используется для формирования массива РН;, который содержит новые значения цветности пикселов и используется в дальнейшем для построения нового изображения. Полная блок-схема алгоритма выделения границ объекта представлена на рис, 2.в Рис. 2, а - блок-схема функции определения цвета пикселов, лежащих в окрестности пиксела с координатами 1„1. Рис.
2.6 Блок-схема функции определения градиента. Рнс. 2, в полная блок-схема алгоритма выделения границ объектов. Для дальнейшего анализа изображения и самих гранул необходимо выделить каждую гранулу, как самостоятельный геометрический объект, который представляет собой выпуклый многогранник, вершины которого лежат на контуре гранулы. При решении этой задачи стоит рассмотреть изображение контура единичной гранулы (рис. 3).
Поскольку матрица цифровой видеокамеры считывает изображение по-пиксельно, то изображение представляет собой двумерную матрицу размерами и~ х Ь пикселов, где и — ширина изображения, А — высота изображения. Каждый пиксел изображения принадлежит матрице а/и;Ц, имеет координату. Пусть существуют такие точки А~х1„у1), В~х2,у2), которые лежат на контуре гранулы, а так же на одной прямой, при этом у1 = у2, х1 Ф х2. Анализ контурного изображения, с целью нахождения опорных точек, происходит методом по-пиксельного сканирования, в процессе которого цвет пиксела контурного изображения с координатами хь ~', проверяется на эквивалентность с черным и белым цветом, Блок-схема алгоритма нахождения опорных точек представлена на рис.
4. Алгоритм данной блоксхемы характеризует последовательный перебор пикселов с целью нахождения пиксела нужного цвета. Рис. 3 Изображение контура одной гранулы Имея полученные координаты точек А(х1,у1) и В(х2,у2), необходимо произвести расчет координаты точки О(хО, уО), лежащей на прямой АВ, такой что АО = ОВ (рис. 2.11). Зная, что у1 = у2 = уО можно произвести вычисление длины отрезка АВ по формуле: АВ = х2 — х1, тогда координата хО рассчитывается по формуле: хО = х1 + (х2 — х1) /2.
(4) Полученные координаты точки 0(хО, уО) следует использовать для дальнейшего итеративного поиска точек, лежащих на контуре гранулы. Имея координаты точки 0(хО, уО), необходимо произвести поиск точек С(хЗ,уЗ), В(х4,у4), таких что точка О~хО, уО), лежит на отрезке С1З, при этом СО=Ой; координаты оси абцисс точек С и Р удовлетворяют следующему равенству: Рис. 4 Блок-схема поиска координат опорных точек Отрезок ПС расположен перпендикулярно отрезку АВ, а точки С и .0 лежат на границе контура гранулы ~рис. 5). На основании имеющихся данных можно построить многогранник АВС0, с вершинами А1х1,у1), В~х2,у2), СИЗ,уЗ), О1х4,у4)„который будет характеризовать гранулу в геометрическом представлении.
Разумеется, такой многогранник не может в полной степени использоваться для анализа геометрических размеров гранулы, поэтому для повышения точности измерений необходимо увеличить число вершин многогранника. Увеличение вершин многогранника необходимо производить с соблюдением заданной точности в, которая может быть представлена как: заданное количество итераций по поиску вершин; общее количество найденных вершин; минимальное расстояние между вершинами. Введение такой переменной необходимо в качестве семафора для выхода из циклов алгоритма поиска вершин.
Рис. 5 Точки А, 8„С, О, лежащие на контуре гранулы Для увеличения вершин многогранника можно прибегнуть к рекурсивному разбиению имеющихся отрезков АО, ОВ, СО, Х)О„с последующим нахождением вершин, лежащих на контуре объекта.
Графическое представление результата алгоритма показано на рис. б„где а— иллюстрация пошаговой работы алгоритма рекурсивного поиска; б иллюстрация полученного многогранника с вершинами, лежащими на границе объекта. Увеличение числа вершин многогранника увеличивает точность дальнейших операций по определению геометрических размеров гранул. Графическое изображение двух полученных многогранников с разным числом вершин представлено на рис.
7, где а — многогранник с 14 вершинами, б — многогранник с 30 вершинами. Для измерения относительных размеров многогранника необходимо измерить различные расстояния между его вершинами. Зная относительные расстояния между вершинами в пикселях можно перевести их в единицы измерения СИ, например миллиметры, предварительно осуществив калибровку видеокамеры с последующим расчетом количества миллиметров эквивалентных одному пикселю. Рис. 6 Получение вершин многогранника методом рекурсивного поиска Рис. 7 Многогранники с разным числом вершин.
После формирования массива вершин многогранника необходимо определить такую точку О ~хО,у0), лежащую на отрезке АВ, при этом должны выполняться следующие условия: точки А~х1, у1), В~х2, у2) должны быть вершинами многогранника; А — является максимальным расстоянием между вершинами многогранника; АО = ОВ. Для определения максимального расстояния между вершинами, характеризующимся отрезком АВ, необходимо произвести расчет всех расстояний между )-ой и)-ой вершиной, где 1, 1' Е ~ 1, М 1, где Ж вЂ” число вершин многогранника. Расстояние между двумя вершинами многогранника вычисляется по следующей формуле: (5) где 6 — расстояние между ~-ой иу-ой вершинами.
В процессе расчета расстояний между вершинами необходимо итеративно определять максимальное значения расстояния между точками. При нахождении такого максимального расстояния на»-ом внешнем цикле и ~-ом внутреннем цикле значения координат»'-ой точки Х; и У; соответственно присваиваются в переменные Хя и У»,' значения координат~-ой точки Х и ~; соответственно присваиваются в переменные Ха и Кя. Блок-схема алгоритма поиска максимального отрезка АВ представлена на рис. 8. Рис.
8 Блок-схема алгоритма поиска отрезка АВ Алгоритм поиска координат точек А~Х», У»~, В~Ха, Ув~ представляет собой двойной вложенный цикл, где»' является счетчиком внешнего цикла, ~ является счетчиком внутреннего цикла. Счетчик»' характеризует собой текущую 1-ую вершину многогранника, имеющую координаты Хь У;; счетчик 1 характеризует собой текущую 1-ую вершину многогранника, имеющую координаты Х, У";. Для каждой 1-ой вершины происходит поиск такой 1-ой вершины из числа всех вершин многогранника, которая является максимально удаленной от 1-ой вершины.
Графическое представление хода алгоритма поиска максимальных расстояний представлено на рис. 9. Пунктирными линиями показаны все возможные отрезки от 1-ой вершины с координатами Х;т', до всех 1'-ых вершин с координатами Х;У;. Иными словами происходит последовательный перебор всех отрезков между вершинами многогранника с целью получения координат вершин, образующих отрезок максимальной длины. и~ б) Рис. 9 Графическое изображение поиска отрезков максимальной длины Поскольку гранула гранулированного пищевого объекта, как то гранула отруби, кукурузной палочки, гранулированного комбикорма представляет собой объект цилиндрической формы, то проекция ее форма на матрицу видеокамеры должна представлять собой прямоугольник.
Такое представление является идеальным, но из-за особенностей технологического процесса, таких как: степень остроты ножа на матрице гранулятора, влажности сырья, температуры и т.д., а так же из-за особенностей устройства оптики и разрешения матрицы видеокамеры, проекция гранулы зачастую представляет собой геометрическую фигуру эллиптического характера. Точка О 1рис.
10)„лежащая в центре отрезка АВ, образованного точками А1Хь ХД, В1Хв Хв~, лежащими на контуре гранулы и являющими одними из вершин многоугольника, может быть использована для построения отрезков, характеризующих длину и ширину гранул. Рис. 10 графическое отображение алгоритма по поиску точки О. Для поиска отрезка, характеризующего ширину гранулы необходимо рассмотреть множество отрезков М№н проходящих через точку О~хд, уО), при этом точки М»1х»л, ут) и №»1хл, ул) должны лежать на гранях многогранника, где А — число найденных отрезков М№ Так как гранула комбикорма представляет собой объект цилиндрической формы, а ее проекция на матрицу видеокамеры представляет собой фигуру эллиптического, либо прямоугольного характера, то является логичным утверждение о том, что отрезок М№ь имеющий ми»шмальную длину из всего множества отрезков М№», является отрезком, характеризующим ширину гранулы в поперечнике.
Для нахождения такого отрезка М№ необходимо составить множество отрезков М№», с последующим нахождением длины каждого отрезка, через координаты точек М»~хл», ут) и №»1х»», ул). Через точку О~хО, уО), может проходить бесконечное количество таких отрезков, так как координаты концов этих отрезков могут иметь действительные, а не целочисленные значения, поэтому поиск множества отрезков МУ» необходимо производить итеративно, используя целочисленные значения координат, а так же будет логичным ввести переменную, характеризующую заданную точность поиска. Такая переменная с будет служить сигналом выхода из цикла итеративного поиска при достижении заданного значения. Данное ограничение может быть представлено как: количество итераций цикла поиска; углом а между отрезками ММ; и МФ;,», количество найденных отрезков МФ в множестве МФ».