УСТРОЙСТВО ПОИСКА НЕАНАЛИТИЧЕСКОЙ КРИВОЙ НА РАСТРОВОМ ЦИФРОВОМ ИЗОБРАЖЕНИИ

Полезная модель относится к устройствам цифровой обработки изображений и может быть использована в различных устройствах, осуществляющих определение различных дефектов на растровом цифровом изображении, в частности, при анализе целостности металлических поверхностей при механическом производстве сварных конструкций с высоким требованием к качеству сварного шва.
Существует несколько различных методов для определения на растровом цифровом изображении неаналитических кривых (кривые, заданные индексами точек, соответствующие координатам в декартовой системе координат). Известно описание метода, изложенное в работе [Рао D., Li H., Jayakumar R., Shapes recognition using the straight line Hough Transform: Theory and Generalization. - Pattern Anal. Mach. Intell., Vol.14, NO.11, 1992]. В данном методе используется преобразование Хоха для аналитических кривых, матрица параметрического пространства определяется следующим образом:
где q=0, ..., Q-1 - число градаций угла наклона нормали к прямой линии;
р=0, ..., Р-1 - длина нормали к прямой линии;
ij
- матрица бинарного изображения (F∈{0,1});
- одномерные массивы, содержащие значения для тригонометрических функций:
- матрица параметрического пространства (R - область изображения);
q
q
]iCOS+jSIN[ - округление значения до левого целевого.
Данный подход отличается простотой для возможной реализации устройства, однако, как покачано в (Лабунец В.Г., Чернина С.Д., Теория и применение преобразования Хоха. Зарубежная радиоэлектроника, №10, 1987, С.48-56] в отдельных случаях при значительном ухудшении качества изображения, прямая, определенная на растровом цифровом изображении, является не соответствующей заданным критериям точности. Следовательно, данный подход не может быть использован в системах обработки цифровых изображений для определения дефектов, требующих высокую степень анализа линии или кривой.
Известно устройство определения различия между несколькими обработанными цифровыми изображениями, полученными из исходного, принятое за прототип (патент Российской Федерации №2234131, кл. G 06 Т 1/00, G 06 F 7/38, Бюл. №22), содержащее: блок хранения исходного и подвергшихся обработке цифровых изображений, блок предварительной коррекции, блок сравнения индексов искажений, блок управления и генерации адресов, блок вычисления индекса искажений, состоящий из блока вычисления косинуса, блока вычисления нормировочного коэффициента, блоков умножения, блоков суммирования, блоков извлечения квадратного корня, блока деления, блока вычисления арккосинуса.
Данное устройство обладает необходимыми характеристиками для оценки отличий между обработанным и исходным изображением, но здесь не рассматривается возможность использования, в качестве обработанного изображения, объекта, представленного в виде неаналитической кривой.
Наиболее близким к предлагаемому устройству является устройство выделения контуров изображений объектов (патент Российской Федерации №2185659, кл. G 06 К 9/4), содержащее: датчик изображения, буферную память, элемент И, генератор, нейроматричный процессор, аналого-цифровой преобразователь, блок выделения кадрового и строчного импульсов и контроллер PCI-шины.
Недостатком этого устройства является невозможность определить неаналитическую кривую, которая может быть представлена как эталон U.
n
0
1
n-1
n
Предлагаемая полезная модель позволяет определить параметры кривой на растровом цифровом изображении, используя и качестве исходных данных эталон U, заданным неаналитической последовательностью точек U=(u, u, ...,u), выбранных на этой кривой с некоторым шагом, т.e. U∈U.
UA
2
2
2
3
Технический результат достигается тем, что в устройстве поиска неаналитической кривой на исходном цифровом изображении, содержащем: блок хранения исходного цифрового изображения, блок хранения точек эталона U, блок управления и генерации адресов, блок определения неаналитической кривой на изображении, выполняется преобразование H:L(R,{0,1})→L(R,R), ставящее в соответствие каждому бинарному изображению b(x,y) его спектр параметров. В блоке определения неаналитической кривой на изображении осуществляется вычисление массива спектра параметров по следующей формуле:
0
0
где А - оператор, выполняющий геометрические преобразования координат (поворот на угол φ, сдвиг на вектор (х,y);
ij∈
- матрица бинарного изображения (F{0,1});
0
0
i=0, ..., N-1; j=0, ..., М-1 - индексы точки бинарного изображения;
u=0, ..., n-1 - число точек эталона;
- массив спектра параметров, соответствующий бинарному изображению b(x,y);
- число градаций угла.
По данной формуле выполняется преобразование по кривой AU, что позволяет определить спектр ее параметров и выявить точки, наиболее соответствующие исходному цифровому изображению.
На фигуре представлена схема устройства, реализующего полезную модель.
Устройство состоит:
- из блока хранения исходного цифрового изображения (блок 1), который позволяет осуществить независимую, поэлементную выборку из хранящегося в нем
изображения, указанный блок соединен с блоком определения кривой на изображении (блок 2);
- из блока хранения точек эталона U (блок 4), указанный блок соединен с блоком определения кривой на изображении (блок 2). С каждым из вышеперечисленных блоков связан блок управления и генерации адресов для управления вычислительными процессами, происходящими в устройстве, а также выборки необходимой информации (блок 3).
Результатом работы устройства является спектр параметров h(a) бинарного изображения, позволяющий определить точки на исходном цифровом изображении, соответствующие заданному эталону произвольной кривой.
Нумерация входов и выходов блоков на фигуре начинается сверху.
Блок определения контура на изображении (блок 2) включает в себя блок вычисления суммы с накоплением (блок 2.10), который производит арифметическое суммирование поступающей на вход величины со значением, хранящимся во внутреннем регистре блока по пришествии синхронизирующих сигналов, при чем на вход блока 2.10 поступает величина с первого выхода блока 4, выход блока 2.10 соединен с входом первого блока вычисления декремента числового значения (уменьшения на одно значение) (блок 2.12), осуществляющего вычисление разности входной величины со значением, хранящимся во внутреннем регистре блока, данное значение неизменно и равно 1, по пришествии синхронизирующего сигнала, выход блока 2.12 соединен с третьим входом второго блока вычисления инкремента числового значения (увеличение на одно значение) (блок 2.3), осуществляющего увеличение величины, хранящийся во внутреннем регистре блока, на одно значение, по пришествии синхронизирующего сигнала, до максимального значения, поступающего на третий вход блока, соединенного с блоком 2.12, при чем на первый вход блока 2.3 поступает величина с выхода первого блока вычисления инкремента числового значения (увеличение на одно значение) (блок 2.2), осуществляющего увеличение величины, хранящийся во внутреннем регистре блока, на одно значение, по пришествии синхронизирующего сигнала, до максимального значения, поступающего на второй вход блока, при чем первый вход блока 2.2 соединен с выходом первого блока определения условия равенства
числовых значений (блок 2.1), осуществляющего логическое сравнение входной величины со значением, хранящимся во внутреннем регистре блока, по пришествии синхронизирующего сигнала, при чем вход блока 2.1 соединен с первым выходом блока 1, выход блока 2.3 соединен с входами блоков вычисления произведения (блоки 2.4, 2.6), третий блок определения условия равенства (блок 2.11), выполняет логическое сравнение входной величины со значением, хранящимся во внутреннем регистре блока но пришествии синхронизирующего сигнала, при чем вход блока 2.11 соединен с третьим выходом блока 4, выход блока 2.11 соединен с первым входом третьего блока вычисления произведения (блок 2.13), осуществляющего по пришествии синхронизирующего сигнала вычисление произведения входной величины со значением, поступающим на второй вход, при чем на данный вход поступает постоянная величина равная 4, выход блока 2.13 соединен с входом второго блока вычисления декремента числового значение (уменьшение на одно значение) (блок 2.14), осуществляющего вычисление разности входной величины со значением, хранящимся во внутреннем регистре блока, при чем значение является постоянной величиной равной 1, и со вторым входом первого блока вычисления деления (блок 2.15), который выполняет деление входящей величины, поступающей на второй вход блока, на значение, поступающее на первый вход блока, данное значение является постоянной величиной равной произведению 2π, с сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, выход блока 2.14 соединен со вторым входом блока 2.2 и с третьим входом четвертого блока вычисления произведения (блок 2.1 7), при чем второй вход блока 2.17 соединен с выходом блока 2.2, выход блока 2.17 соединен с входами блоков вычисления тригонометрических функций (блок 2.18, 2.19), выполняющие вычисление значения тригонометрической функции  и  для входной величины по пришествии синхронизирующего сигнала, при чем выходы блоков 2.18 и 2.19 соединены с первым и вторым входом первого динамического блока хранения массивов значений тригонометрических функций (блок 2.20), осуществляющего запись входных величин, поступающих на первый, второй и третий вход, во внутренние регистры блока, для дальнейшего хранения, по
пришествии синхронизирующего сигнала, при чем выход блока 2.20 соединен со вторым входом третьего блока определения условия равенства числовых значений (блок 2.16), осуществляющего логическое сравнение соответствия индексу, представляющего собой входную величину, поступающую на первый вход блока, и значению в массиве данных, поступающих на второй вход блока, по пришествии синхронизирующего сигнала, при чем первый выход блока 2.16 соединен с входами блока 2.4, блока инверсии числового значения (блок 2.5) и блок 2.6, второй выход блока 2.16 соединен со вторым входом второго динамического блока хранения значений вектора параметров (блок 2.21), блок 2.4 производит вычисление произведения входных величин, поступающих на первый и второй вход блока, с сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, блок 2.5 осуществляет инверсию входной величины (умножение на значение минус единицу, которая является постоянной величиной) с сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, блок 2.6 выполняет вычисление произведения входных величин, поступающих на первый, второй и третий вход блока по пришествии синхронизирующего сигнала, при чем значение, поступающее с третьего блока, сохраняется во внутреннем регистре блока 2.6, выходы блоков 2.4 и 2.6 соединены с входами первого блока вычисления разности (блок 2.7), осуществляющего вычисление разности входных величин, с дальнейшим сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, при чем выход блока 2.7 соединен с первым входом второго блока вычисления разности (блок 2.8), осуществляющего вычисление разности входных величин, с дальнейшим сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, выход блока 2.8 соединен с первым входом второго блока определения условия равенства числовых значений (блок 2.9), осуществляющего логическое сравнение входных величин, поступающих на вход блока 2.9, по пришествии синхронизирующего сигнала, с сохранением результата во внутреннем регистре блока, при чем второй вход блока 2.9 соединен со вторым выходом блока 1, выход блока 2.9 соединен с первым входом блока 2.21 и с входом четвертого блока определения условия равенства
числовых значений (блок 2.22), при чем второй вход блока 2.21 соединен со вторым выходом блока 2.16, блок 2.21 осуществляет запись входных величин, поступающих на первый, второй вход, во внутренние регистры блока, для дальнейшего хранения в качестве массива значений вектора параметров, по пришествии синхронизирующего сигнала, при чем выход блока 2.21 соединен с первым входом пятого блока определения условия равенства числовых значений (блок 2.23), осуществляющего логическое сравнение соответствия индексу, представляющего собой входную величину, поступающую на второй вход блока, и значению в массиве данных, поступающих на первый вход блока, по пришествии синхронизирующего сигнала, при чем второй вход блока 2.23 соединен с выходом блока 2.22, осуществляющего логическое сравнение входной величины, поступающей на вход блока, со значением, хранящимся во внутреннем регистре блока с сохранением результата во внутреннем регистре блока, по пришествии синхронизирующего сигнала, выходом блока 2.23 является величина, характеризующая определение контура произвольной заданной формы на исходном цифровом изображении.
Устройство работает следующим образом. По синхронизирующему сигналу загрузки, который генерирует блок 3, в блок 1 осуществляется загрузка исходного изображения, и в блок 4 осуществляется загрузка значений точек эталона U произвольного контура. После окончания загрузки и после поступления сигнала синхронизации осуществляется передача изображения и эталона U в блок 2 для определения величин, характеризующих определение неаналитической кривой на исходном цифровом изображении.
Рассмотрим подробнее процесс определения кривой на исходном цифровом изображении, осуществляемый в блоке 2.
После поступления синхронизирующего сигнала общей инициализации от блока 3 к блоку 2 производиться обнуление внутренних регистров хранения блоков 2.2, 2.3, 2.21, 2.22, 2.10, 2.11, 2.20, на входы всех элементов блока 2, за исключением элемента 2.15, подаются нулевые значения. На второй вход блока 2.9 подаются величины равные высоте и ширине исходного изображения N, M.
При поступлении синхронизирующего сигнала загрузки элемента изображения, происходит выборка значений точки, имеющей индекс (i,j) для исходного
i
цифрового изображения. Величина I(i,j) подается на вход блока 2.1; при поступлении синхронизирующего сигнала загрузки элемента эталона U произвольного контура, происходит выборка значений точки U, величина подается на вход блока 2.10 и на вход блока 2.11. При поступлении синхронизирующего сигнала на блок 2.1, осуществляется сравнение входной величины со значением, хранящимся во внутреннем регистре блока. При выполнении условия, происходит изменение флага внутреннего регистра блока 2.1 (флаг принимает значение логической единице при истине или нулю в противном случае). При поступлении синхронизирующего сигнала на блок 2.10, осуществляется сложение входной величины со значением, хранящимся во внутреннем регистре блока. Затем происходит изменение значений i (номер точки эталона U произвольного контура) и на вход блока 2.10 подается новое значение; таким образом, если i<N, то индекс i устанавливается равным 0, и на вход блока 2.10 новые значения не подаются, тем самым происходит накопление результата с сохранением значения во внутреннем регистре блока 2.10. После окончания описанного выше процесса происходит формирование блоком 3 синхронизирующего сигнала выдачи данных, который поступает на блок 2.10, результат вычисления в блоке 2.10 поступает на вход блока 2.12. При поступлении синхронизирующего сигнала на блок 2.11, осуществляется сравнение входной величины со значением, хранящимся во внутреннем регистре блока. При выполнении условия, происходит изменение флага внутреннего регистра блока 2.1 (флаг принимает значение логической единицы при истине или нулю в противном случае). При чем наибольшее из значений сохраняется во внутреннем регистре блока 2.11. Затем происходит изменение значений i (номер точки эталона U произвольного контура) и на вход блока 2.11 подается новое значение; таким образом, если i<N, то индекс i устанавливается равным 0, и на вход блока 2.11 новые значения не подаются. После окончания описанного выше процесса происходит формирование блоком 3 синхронизирующего сигнала выдачи данных, который посту наст на блок 2.11, результат, определенный в блоке 2.11 поступает на первый вход блока 2.13. При поступлении синхронизирующего сигнала умножения на блок 2.13, осуществляется перемножение входных величин, результат выполнения операции в блоке поступает на вход блока 2.14 и на второй вход блока
2.15. При поступлении синхронизирующего сигнала на блок 2.12, осуществляется вычисление разности входной величины со значением, хранящимся во внутреннем регистре блока 2.12, результат выполнения операции в блоке поступает на третий вход блока 2.3. При поступлении синхронизирующего сигнала на блок 2.14, осуществляется вычисление разности входной величины со значением, хранящимся во внутреннем регистре блока 2.14, результат выполнения операции в блоке поступает на второй вход блока 2.2. При поступлении синхронизирующего сигнала на блок 2.2, осуществляется вычисление операции инкремента (увеличение числового значения на единицу) с сохранением результата во внутреннем регистре блока 2.2, таким образом, что дальнейшее изменение величины, при поступлении синхронизирующего сигнала, происходит до определенного порогового значения, подаваемого на второй вход блока 2.2. После окончания описанного выше процесса происходит формирование блоком 3 синхронизирующего сигнала выдачи данных, который поступает на блок 2.2, результат, определенный в блоке 2.2, поступает на первый вход блока 2.3. При поступлении синхронизирующего сигнала на блок 2.15, осуществляется вычисление операции деления входных величин, результат выполнения операции в блоке поступает на первый вход блока 2.17. При поступлении синхронизирующего сигнала умножения на блок 2.17, осуществляется перемножение входных величин, результат выполнения операции в блоке поступает на входы блоков 2.18, 2.19. При поступлении синхронизирующего сигнала умножения на блок 2.18, 2.19, осуществляется вычисление значения тригонометрической функции входной величины, подаваемой на входы блоков 2.18, 2.19. Результат вычислений поступает на первый и второй вход блока 2.20, для соответствия значений индексов массива значений тригонометрической функции, сохраняемых во внутренних регистрах блока, на третий вход блока 2.20 подается величина, соответствующая номерам точек эталона U. При поступлении синхронизирующего сигнала на блок 2.16, осуществляется логическое определение значения величины, подаваемой на второй вход блока 2.16, со значением, соответствующим индексу массива, хранящегося в блоке 2.20. Результат вычисления поступает на второй вход блока 2.4, на вход блока 2.5, на второй вход блока 2.6. При поступлении синхронизирующего сигнала на блок 2.3,
0
0
0
0
осуществляется вычисление операции инкремента (увеличение числового значения на единицу) с сохранением результата во внутреннем регистре блока 2.3, таким образом, что дальнейшее изменении величины, при поступлении синхронизирующего сигнала, происходит до определенного порогового значения, подаваемого на третий вход блока 2.3. После окончания описанного выше процесса происходит формирование блоком 3 синхронизирующего сигнала выдачи данных, который поступает на блок 2.3, результат, определенный в блоке 2.3, поступает на первый вход блока 2.4 и блока 2.6. При поступлении синхронизирующего сигнала умножения на блоки 2.4, 2.6, осуществляется вычисление произведения входных величин. При поступлении синхронизирующего сигнала на блок 2.5, осуществляется вычисление инверсии входного значение (умножение числового значения на -1), результат вычисления поступает на третий вход блока 2.6. При поступлении синхронизирующего сигнала на блок 2.7, осуществляется вычисление разности между величинами, подаваемыми на первый и второй вход блока 2.7, результат вычисления в блоке 2.7 поступает на первый вход блока 2.8. При поступлении синхронизирующего сигнала на блок 2.8, осуществляется вычисление разности двух входных величин, т.е. значений величин I(i,j) исходного изображения и I(i,j) преобразованного значения, соответственно поступающих с выхода блока 2.7 и с первого выхода блока 1, результат вычисления поступает на вход блока 2.9. При поступлении синхронизирующего сигнала на блок 2.9, осуществляется сравнение двух входных величин и выполняется проверка следующих условий 0≤i<N и 0≤j<М, при выполнении условий, происходит изменение значения во внутреннем регистре блока 2.9 (величина принимает значение логической единице при истине или нулю в противном случае). При поступлении синхронизирующего сигнала на блок 2.21, осуществляется запись входной величины, поступающей на первый вход блока 2.21, во внутренние регистры блока 2.21, таким образом, что для хранения вектора параметров в качестве индекса элемента используется величина, подаваемая на второй вход блока 2.21. При поступлении синхронизирующего сигнала на блок 2.22, осуществляется логическое сравнение входной величины со значением, хранящимся во внутреннем регистре блока 2.22, наибольшее значение сохраняется как результат во внутреннем
регистре блока 2.22. Затем происходит изменение значений индексов i и j исходного изображения следующим образом, если j<M-1, то индекс j увеличивается на единицу, если j=M-1 и i≠N-1, то индекс j устанавливается равным нулю, а индекс i увеличивается на единицу, затем на вход блока 2.1 подается новая точка исходного цифрового изображения. Такой процесс повторяется для всех i<N и j<М. После окончания описанного выше процесса происходит формирование блоком 3 синхронизирующего сигнала выдачи данных, который поступает на блоки 2.21 и 2.22. Результат определения вектора параметров в блоке 2.21 поступает на первый вход блока 2.23, результат определения максимального элемента по индексу и блоке 2.22 поступает на второй вход блока 2.22. При поступлении синхронизирующего сигнала на блок 2.23, осуществляется определение элемента по индексу, подаваемому на второй вход блока 2.23, соответствующему максимальному значению, хранимому в блоке 2.21. Результат выполнения условия равенства числовых значений является спектр параметров h(a) соответствующий эталону U.