|
|
Рис.2.7 |
График зависимости кривизны от радиуса фильтра для угла
Рис.2.8
2.2. Описание алгоритма построения кольцевого фильтра
2.2.1. Назначение и характеристика алгоритма
Алгоритм описывает метод вычисления координат кольцевого фильтра. Математическое описание алгоритма приведено в подразделе 2.1.4.
2.2.2. Используемая информация
В алгоритме используются значения внешнего и внутреннего радиуса кольца.
2.2.3. Результаты решения
В результате реализации алгоритма формируется массив координат точек кольцевого фильтра. При этом центр координат совпадает с центром фильтра.
1. i=-MASK_SIZE;
2. j=MASK_SIZE;
3. s=sqrt(i*i+j*j);
4. Если ((s<=outsideR)&&(s>=insideR)), то к.п.5, иначе переход к п.7
5. FltArr[FltArr_index].x=i;
6. FltArr[FltArr_index++].y=j;
7. j--;
8. Если j>=-MASK_SIZE, то переход к п.3
9. i++;
10. Если i<=MASK_SIZE, то переход к п.2
11. Конец
2.2.5. Список условных обозначений
Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.1.
Таблица 2.1
Список условных обозначений
Обозначение
Расшифровка
MASK_SIZE
Радиус максимального фильтра в пикселях
i, j
Координаты текущего пиксела
FltArr
Массив координат
FltArr_index
Индекс текущего элемента в массиве FltArr
s
Расстояние от центра фильтра до текущего пиксела
2.3. Описание алгоритма вычисления центра масс
2.3.1. Назначение и характеристика алгоритма
Алгоритм описывает процесс вычисления центра масс относительно центра фильтра. Математическое описание алгоритма приведено в подразделе 2.1.4. В результате решения алгоритма вычисляются координаты центра масс.
2.3.2. Алгоритм решения
1. M=0,Wx=0,Wy=0;
2. Cx=0,Cy=0; k=0;
3. Если (k>=FltArr_index), то переход к п.8
4. M=M+ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y:
5. Wx=Wx+
+(CF.x+FltArr[k].x)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];
6. Wy=Wy+
+(CF.y+FltArr[k].y)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];
7. k++; переход к п.3
8. M=M/255;
9. Wx=Wx/255;
10. Wy=Wy/255;
11. Если (M==0), то переход к п.14
12. Cx=Wx/M;
13. Cy=Wy/M;
14. Конец
2.3.3. Список условных обозначений
Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.2.
Таблица 2.2
Список условных обозначений
Обозначение
Расшифровка
M
Общая масса пикселей попавших в фильтр
Wx, Wy
Вес пикселей по осям Ox и Oy соответственно.
FltArr_index
Количество точек фильтра
k
Порядковый номер точки фильтра
FltArr
Массив координат точек фильтра
ImArr
Массив исходного изображения
CF
Точка, относительно которой вычисляется центр масс
Cx, Cy
Координаты центра масс
2.4. Описание алгоритма вычисления кривизны
2.4.1. Назначение и характеристика алгоритма
Алгоритм описывает вычисления кривизны линий на изображении с использованием локального метода. В алгоритме используются кольцевой фильтр. В результате решения алгоритма вычисляется кривизна в центре фильтра, находящегося на исследуемой линии.
1. Если (CF.mass==0), то к п.2, иначе переход к п.3
2. С= 140; переход к п.6
3. P=CentrMass(CF);
4. h=sqrt( (P.x-CF.x)^2 + (P.y-CF.y)^2 );
5. C=(h / insideR^2+0.005)*100;
6. Конец;
2.4.3. Список условных обозначений
Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.3.
Таблица 2.3
Список условных обозначений
Обозначение
Расшифровка
CF
Центр фильтра ( поле mass – масса пиксела, x,y – соответственно, координаты)
С
Кривизна
CentrMass
Функция, вычисляющая центр масс
Центр масс
h
Смещение центра масс от центра фильтра
insideR
Внутренний радиус кольца
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
При использовании материалов активная ссылка на источник обязательна.