Диссертация (1152212), страница 22
Текст из файла (страница 22)
3.17). Рис. 3.17 схематическое представление преобразования исходной матрицы в матрицу уменьшенным количеством шумов при помощи матрицы свертки. В данном случае значение коэффициента нормирования йг подобрано равным б, а результат вычислений выглядит следующим образом: (12х0,5 + 14хО 75 + 41хО 5 + 43хО 75 + 84х1,0 + 24хО 75+ 2хО 5 + 1х0 75 + 43хО 5) х 1 / йг = 32, где 32 новое значение пиксела, Размер используемой матрицы свертки М, напрямую влияет на степень интенсивности шумоподавления, чем больше размерность матрицы свертки М„тем больше происходит размытие изображения. Пример матрицы свертки, размерностью 5х5 представлен на рисунке 3.18, где все коэффициенты матрицы приведены в нормированный вид таким образом, чтобы коэффициент нормирования был равен 1.
0,00б5Ы 0,054901 0,111345 0,054901 0,006581 Рис. 3.18 матрица свертки М, размерностью 5к5 и нормированными коэффициентами. Поскольку полученное полутоновое изображение гранул содержит пикселы с варьирующимися показателями градаций серого, что можно наблюдать при многократном увеличении кадра (рис. 3.13), то для более корректной работы алгоритмов определния границ гранул необходимо бинаризировать изображение таким образом, чтобы цифровое изображение содержало два цвета, один из которых характеризует гранулы, а другой характеризует задний фон. Бинаризация изображения производится при помощи метода Янни, в процессе работы которого входное полутоновое изображение принимается как АЯ), где 0 < ~' < А, О < 1 < Н. Принимается соответствующее пороговое значение 1, при превышении которого можно произвести идентификацию принадлежности пикселя к фону нли объекту.
В случае содержания на изображении областей с большой степенью изменения яркости пикселей вводится двойное ограничение, выраженное как 11 < 12. В результате работы алгоритма бинаризации первоначальное полутоновое изображение принимает следующие значения: МОООООО, А(1, у) < г, А~1,1) = ЮАААААА, гт < А(1,Д < г2 „ й000000, А(1,Д > г2 где в шестнадцатеричной системе счисления показаны цветовые показатели соответствующие фону — ФОООООО, который интерпретирован как черный цвет и цветовые показатели соответствующие объекту — А$ААААА, который интерпретирован как серый цвет.
Визуальный результат выполнения блока бинаризации представлен на рисунке 3.19. 150 (д~ 0~) 0~ = 2 (З.б) Недостатком данной методики бинаризации цифрового полутонового изображения является низкая чувствительность к низкоконтрастным областям объектов на изображении, в то же время в качестве преимущества стоит отметить простоту реализации на любом объектно-ориентированном языке программирования, а так же высокую скорость работу, которая обуславливается 151 Рис. 3.19 Бинаризированное изображения после применения фильтров сглаживания шумов. Процессе работы алгоритма бинаризации можно назвать адаптивным, поскольку имеет место выбора оптимального порогового значения г, „которое вычисляется через нахождение наибольшего значения амплитуды уровня серого и наименьшего значения амплитуды уровня серого я„.
Формула расчета оптимального порогового значения ~„„, следующая: линейной сложностью алгоритма — 0(п), увеличивающейся пропорционально размеру изображения. 3.4.3 Программная реализация алгоритма выделения границ объекта При реализации алгоритмов и методов выделения границ объектов, описанных в главе 2, пп.2.2 использовался отдельный модуль в программном обеспечении системы компьютерного зрения, который представлял собой функцию /1пЫЕ~/8ею() программный код которой представлен ниже: // блок объявления переменных рг1чаГе чаг сатВ11птарРа1а;ВйпирРага; рпчаге чаг сапгВ1гпир: В11п1ар; // блок инициализации переменных сагпВйпзарРага = певуч ВйтарРаГа(81 ччЫЙ, 81 Ье18Ы, 1а15е, Ох000000); сатВйпир = пев Вйпир(сагпВйпирРа1а); асЫСЫ1д(саптВйтар); // блок описания тела функции рг1ча1е (ппс6оп ЙпдЫ8е50:чоЫ 1ог (чаг 1ч:1пг = 0; 1ч < д1 1чЫ111; 1ч++) Гог (чаг Ь:1п1 = 81 Ье18)и /4; Ь < 81 Ье18111; Ь++) ( чаг р1хе1 ча1пе270:п1пГ = 8егбгау(сатВйтарРага.8е1Р1хе1(чч — 1, Ь)); чаг р1хе1 ч'а1ие90:шпг = дег(3гау(сатпВ11пирРага.бе1Р1хе1(чч + 1, Ь)): чаг р1хе!Уа1иеОпйпг = дегСгау(сатВ11тарРага.де1Р1хе1(чч, Ь вЂ” 1)); чаг р1хе1 1/а1ие180:шп1 = 8ег0гау(сагпВ11пирРа1а.бегР1хе1(ч, Ь + 1)); чаг р1хе1Уа1ие315щ1п1 = де10гау(сагпВ11пирРаГа.регР1хе1(чч - 1, Ь - 1)); чаг р1хеГЧа1ие45:шпг = бегСгау(саптВ11птарРага.8егР1хе1(1ч + 1, Ь - 1)); чаг р1хе1Уа1пе135:шпг = 8е1С1гау(сатВйпирРа1а.де1Р1хе1(1ч + 1, Ь + 1)); чаг р1хе1 1/а1пе225:п1пг = 8е1Огау(сагпВ11гпарРага.8егР1хе1(в — 1, Ь + 1)); чаг 8х:1пг = (р1хе1'1/а1ие45 + (р1хе1 Ча1ие90 "' 2) + р1хе1Уа1ие135) (р1хе1Уа1пе315 + (р1хе1Уа1пе270 ~ 2) + р1хе1Уа1пе225); чаг 8у:ш1 = (р1хе1 1/а1пе315 + (р1хе1 1/а1ие0 '" 2) + р1хе!'1/а1пе45) (р1хе1Уа1ие225 + (р1хе1 1/а1пе180 "' 2) + р1хе1'Ча1ие135); 152 айаг дгау:шпГ = МагЬ.аЬз18х) + МагЬ.аЬз(8у); айаг 8гауБас1е 1соеГ = 0.5; 8гау ~= ягауЯас1е МеГ; 11' (дгау > 255) дгау = 255; Ы (дгау < О) ягау = 0; ~аг пежР)хе1Уа1иеш)пг = фгау «16) + (р ау «8) + (дгау); ег)8е0ага.зегР)хе1~в, Ь, пеъ Р1хе1Уа1ие); 1 д епс1 аког Ь ) Пепдйэг~ Тело функции БпйЕг18езО содержит двойной вложенный цикл, внешний счетчик которого итерируется по ширине изображения, а внутренний цикл итерируется по высоте изображения.
Цикл пробегает по элементам изображения от пиксела, расположенного в верхнем левом углу до пиксела, расположенном в нижнем правом углу. Функция ЕтдЕН8ею1) использует объекты сатВВтарйага и сатВ1гглар, которые соответственно содержат данные об полученном изображении от объекта Сатега. Объект сатВЫтар используется для представления растровых изображений, а объект сатВЫтарьэага используется для хранения значений уровней яркости пикселя объекта сатВЫтар. В блоке инициализации переменных производится задание параметров для объектов. Для объекта сатВЫтар1Эага принимаются константные значения высоты 1ф и Ий), ширины (ф Ье18йг), цвета заднего фона 10хОООООО) в шестнадцатеричном формате в случае отсутствия изображения.
Для объекта сгппВ1ппар создается экземпляр класса в оперативной памяти компьютера„который будет содержать объект сатВИтарйага. Командой асИС!иЫ(сатВЫтар) производится добавление объекта сатВ1гтар на главное окно программы, для того, чтобы наблюдать получаемые изображения в режиме «оп11пе». В блоке описания тела функции Еш уф ел 1') происходят следующие операции: 1) Формирование значения каждого пиксела матрицы, которая представлена на рисунке 2.4, в оттенках серого при помощи функции де~бгау~сатВЫтарйа~а.уе~Р~хе1(т — 1, Ь)), которой в качестве входных параметров передаются значения пиксела с заданными координатами. В данном случае координаты пиксела соответствуют позиции и-1 по вертикали и л по горизонтали при значениях счетчика внешнего цикла равным и и значения счетчика внутреннего цикла равным 6.
2) Формирование значений градиентов, представленными переменными дх и ду, математическое описание которых представлено формулами (2.6 — 2.3) и блок-схемами на рисунках 2.5 — 2,7. 3) Расчет значения переменной ягау„которая характеризует итоговое значение пикс ела в градациях серого. Стоит отметить, что был введен коэффициентрау5асЫ /сое1 уровня чувствительности алгоритма, который влияет на размер детектируемых обьъектов, который был подобран экспериментальным путем. Как можно видеть из рисунка 3.20 — при неравномерности освещения объектов съемки возникает неравномерное детектирование границ объектов.
В данном случае при высоких значениях коэффициента уровня чувствительности, равным 1, в области высокой экспозиции наблюдается детектирование мелких объектов, таких как крупка, пыль от гранул, в то время как при низких значениях, например 0,35 наблюдается потеря границ объектов в областях с низкой экспозицией. Для данных условий съемки, параметра светочувствительности матрицы эмпирически было выбрано значение 0,5 для коэффициента чувствительности алгоритма. Так же данное наблюдение показало необходимость максимизировать равномерность подсветки исследуемого объекта с целью равномерной экспозиции по всей площади кадра.
154 О.5 0.4 ОЗ5 Рис. 3.20 Сравнение результатов алгоритма выделения границ с разным коэффициентом чувствительности Окончательное значение градации серого пикселя рассчитывается командой ягау ~= у.ау5ас1е 1оег, где данная запись эквивалентна записи ягау = р.ау ~ ягау5ас1е Йое)"; 4) Преобразование полученного значения пикселя в градациях серого в значения шестнадцатеричной системы счисления при помощи команды деи РкхеЛ'аЬе:ипн = ф~гау << 16) + фгау с< 8) + азгпу), 5) Присваивание полученного значения пикселу с координатами ~и,Ь), соответствующими текущим итерациям двойного цикла функции ~~п~~ЕфеьД.