Разработка алгоритма определения центра ядра литого соединения

Для определения центров соединения, были найдены центры их ядер по следующей методике:

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

Схема разработанного алгоритма представлена на рисунке 3.2. Общая схема определения центра представлена на рисунке 3.3. Демонстрация результатов выполнения программной реализации алгоритма представлена на рисунке 3.4.

Фрагмент кода, реализующего данный алгоритм:

cl:=255; //значение яркости канала «по умолчанию» (максимальная)

for i:=0 to analiz_a*2-l do //цикл no размеру анализируемой области begin

{ получение адреса первого пиксела области } dest3:=image3. Picture. Bitmap. ScanLinefi];

for j:=0 to analiz_a*2-l do //цикл no размеру анализируемой области begin /{нахождение самого темного цвета в сегменте

if dest3.r

Inc(dest3); //сдвиг указатель адреса

end;

end;

{нахождение строки с минимальной яркостью по х(горизонтальная гистограмма)}

тах:=О; //обнуление счетчика максимального кол-ва пикселей искомого цвета в 1 строке

for j:=0 to analiz_a*2-l do //цикл no размеру анализируемой области

begin

kk:=O; //обнуление счетчика кол-ва пикселей искомого цвета в текущей строке

for i:=0 to analiz_a*2-l do //цикл no размеру анализируемой области

if destb[3,j, i].r=cl then

kk:=kk+l; //если найден соответствующий цвет, увеличивается счетчик

{ если счетчик кол-ва пикселей искомого цвета в текущей строке больше чем счетчик максимально найденного количества в одной строке}

ifkk>max then //

begin

max:=kk; //запоминание значения счетчика исходной строки как максимального

x:=j; //запоминание исходной строки

minln:=O;

Схема алгоритма определения центра ядра соединения

Рисунок 3.2 - Схема алгоритма определения центра ядра соединения

Получаем координаты центра

Общая схема определения центра ядра соединения

Рисунок 3.3 - Общая схема определения центра ядра соединения

Демонстрация результатов выполнения программной реализации алгоритма определения центра ядра соединения

Рисунок 3.4 - Демонстрация результатов выполнения программной реализации алгоритма определения центра ядра соединения

3.3 Разработка алгоритма выделения границ

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

Для повышения быстродействия автором используется предварительно создаваемый массив адресов изображения и последующая работа с адресами элементов, что повышает скорость работы алгоритма в 5-8 раз по сравнению с прямым обращением к пикселям изображения, что актуально для изображений большого разрешения, таких как сканированные рентгенограммы.

Схема алгоритма представлена на рисунке 3.4. Пример программной реализации приведен на рисунке 3.5.

Задание размерности столбиоб маесибо одресоб иза}рахені/я_

Задание размерности строк касс ибо адрес об-изображений-

rrgghb -BScanUneN.

Чтение строки

одресоб изображения

Чстанпбкп допустимых максимальных индекс об скользящего окна

Цикл по столбцам изображения

Цикл по столбцам изображения

Наложение маски по афесам

Заполнение моссиба значениями цбетоб

изображения

Алгоритм реализации фильтра выделения границ объектов

Рисунок 3.4 - Алгоритм реализации фильтра выделения границ объектов

Пример программной реализации алгоритма нахождения границ. Сверху - исходные сегменты, ниже - обработанные

Рисунок 3.5 - Пример программной реализации алгоритма нахождения границ. Сверху - исходные сегменты, ниже - обработанные

3.4 Разработка алгоритма распознавания геометрических параметров точечных сварных соединений

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

Шаблон, набравший по итогам сравнения наибольшее количество совпадений при наложении на исходное изображения, передает значения своих параметров для дальнейших расчетов.

Схема алгоритма формирования шаблонов и определения параметров объекта на их основе представлена на рисунке 3.6. На рисунке 3.7 представлена функция сравнения сегмента изображения с шаблоном, «Compare», использованная в основном алгоритме.

По результатам выполнения рассмотренных алгоритмов устанавливаются такие параметры объекта как радиус посадочного места под соединение и координаты его центра.

Чстанобка начальных значений

сыа тах=0. r=Round Mil_o4D;

Есть непраберенные радиусы?

Установка начальных значений X

Получение итогобых значений

Есть непраберенные координаты X?

Устанобка начальных значений Y

Есть непроверенные координаты Y?

Ношение шаблона

Подсчет совпадений

Еобпадений больше чем с другими шаблонами?

Запомнить параметры шаблона

Сброс матрицы срабнений. Убеличение координаты Y

Рисунок 3.6

у^оияЯ-сяЛа_о'01

r=c4.

Убеличение радиуса

lmgeCPictuce.Bitmp.

Canvas Cllpse(x.yx*r.y*rk

zzzz

comp^cmpare.

Збеличение координаты X

mox^omp. xcomp=x, ycomp--y rcomp^

bnageLPiclure.

BtmopConvosFiHRecf HmogelPiciure.Bitmap ConvosCbpRecU.

K-rZ

ZZI

Схема алгоритма формирования шаблонов и определения пара

метров объекта на их основе

86

— Схема алгоритма функции сравнения сегмента изображения с шаблоном «Compare»

Рисунок 3.7 — Схема алгоритма функции сравнения сегмента изображения с шаблоном «Compare»

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

Фрагмент кода процедуры определения корректности соединения:

{получение значения допустимого смещения ядра соединения 1(мм) в пикселах и запись данного значения в ррх}

PixelsPerMM( image 1 .Canvas.Handle, І,ррх);

{расчет величины отклонения как расстояние между центрами литого ядра соединения и посадочного места под него}

x2:=sqrt( sqr( abs(хсс2 -хт) )+sqr( abs(усс2 -ут)));

if х2>ррх then begin //если отклонение выше нормы

if хсс2>хт then //определение декартовой четверти направления смещения

begin

if усс2<ут then str:=2 else str:=3;

end else begin

ifycc2

end;

{отображаем нарушение в виде метки на изображении}

Image 1. Canvas. Pen. Width:=10;

Image 1 .Canvas. Pen. Color:=clred;

Image 1.Picture.Bitmap.Canvas.Rectangle(xc-analiz_a-round(ppx),yc-analiz_a-round(ppx),xc+analiz_a+round(ppx),yc+analiz_a+round(ppx));

Image 1 .Picture.Bitmap.Canvas.StretchDraw(

rect( xc-analiz_a-round(ppx),yc-analiz_a-round(ppx),

xc-analiz_a+round(ppx),yc-analiz_a+round(ppx) ),s[str]);

{заносим запись в форму учета дефектов}

stringgridl. RowCount:=stringgridl. RowCount+1;

stringgridl.Cells[ 1 ,stringgridl .RowCount-1 ]:= 'смещение';

stringgridl .Cells[2,stringgridl .RowCount-1 ]:=inttostr(str); //декартова четверть

stringgridl .Cells [3,stringgridl .Row Count-1 ] :=floattostr(abs(xcc2-xm)/l 00); // no x

stringgridl. Cells [4, string grid 1. Row Count-1 ]: =floattostr( abs( ycc2 -ym )/l 00); // noy

end

else begin //если отклонения не выявлено

{отображаем метку на изображении, свидетельствующую о соответствии объекта нормам}

Image 1. Canvas.Pen. Color:=clgreen;

Image 1 .Canvas.Pen. Width:=3;

Image 1.Picture.Bitmap.Canvas.Ellipse(xcc,ycc,xcc+rcc,ycc+rcc);

End;

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

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

На рисунке 3.10 представлен фрагмент распознанного изображения, содержащий множество точечных сварных соединений. Сегменты, литые ядра соединений в которых смещены, автоматически выделяются рамкой, в которой указывается направления смещения.

Таблица 3.2 - Основные переменные, использующиеся в фрагменте кода процедуры определения корректности соединения

Обозначение

Тип

Назначение

1

integer;

Допустимое отклонения ядра литого соединения в мм. Задается пользователем в настройках программы

ррх

integer;

Допустимое отклонения ядра литого соединения в пикселях. Вычисляется на основе размеров изображения

х2

integer;

Расстояние в пикселях между центрами литого ядра соединения и посадочного места под него

хсс2, усс2

Integer;

Координаты центра посадочного места под соединение

гсс

Integer;

Радиус посадочного места под соединение

хт, ут

Integer;

Координаты центра литого ядра соединения

str

Byte;

Декартова четверть направления смещения (1-4)

analiz_a

Integer;

Ширина исследуемого сегмента изображения в пикселах

Демонстрация программной реализации алгоритма определения гео

Рисунок 3.9 - Демонстрация программной реализации алгоритма определения гео

метрических параметров

Рисунок 3.10 - Фрагмент изображения, распознанного по представленному алгоритму

Результаты и выводы по третьей главе

На основании вышеизложенного получены следующие результаты:

  • 1) Разработан алгоритм нелинейной шумоподавляющей фильтрации в виде медианного фильтра с использованием методов «быстрой сортировки Хоара». Приведены схема алгоритма и описание основных переменных.
  • 2) Разработан алгоритм определения центра ядра литого соединения, основанный на разработанном и описанном во второй главе подходе, включающем в себя анализ вертикальной и горизонтальной гистограмм сегмента изображения. Приведены схема, фрагмент кода и демонстрация программной реализации алгоритма.
  • 3) Разработан алгоритм выделения границ объектов на рентгенограммах, базирующийся на использовании двумерного преобразования сегмента по Лапласу. Приведены схема и пример программной реализации алгоритма.
  • 4) Разработан алгоритм распознавания геометрических параметров точечных сварных соединений, основанный на методах коллективов решающих правил. Приведены схемы, пример кода и описание основных переменных. Продемонстрирован результат программной реализации как для отдельных сегментов, так и для участка изображения, содержащего множество соединений.

Таким образом, разработанное алгоритмическое обеспечение автоматизированной системы контроля точечных сварных соединений на основе рентгенографии основано на методах коллективов решающих правил и позволяет эффективно обрабатывать сегменты рентгенограмм за счет динамического формирования шаблонов для классов смещений литого ядра

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >