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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?иуса фильтра (рис.2.8), т.к. пропорционально изменяется радиус окружности, которую можно вписать между центром фильтра и точками линии, попавшими в фильтр.

Криваяa) обработка фильтром большого радиуса;б) обработка фильтром маленького радиуса;Рис.2.5График зависимости кривизны от радиуса фильтра для кривой

Рис.2.6

Уголa) обработка фильтром большого радиуса;б) обработка фильтром маленького радиуса;Рис.2.7

График зависимости кривизны от радиуса фильтра для угла

Рис.2.8

  1. Описание алгоритма построения кольцевого фильтра
  1. Назначение и характеристика алгоритма

Алгоритм описывает метод вычисления координат кольцевого фильтра. Математическое описание алгоритма приведено в подразделе 2.1.4.

  1. Используемая информация

В алгоритме используются значения внешнего и внутреннего радиуса кольца.

  1. Результаты решения

В результате реализации алгоритма формируется массив координат точек кольцевого фильтра. При этом центр координат совпадает iентром фильтра.

  1. Алгоритм решения
  2. i=-MASK_SIZE;
  3. j=MASK_SIZE;
  4. s=sqrt(i*i+j*j);
  5. Если ((s=insideR)), то к.п.5, иначе переход к п.7
  6. FltArr[FltArr_index].x=i;
  7. FltArr[FltArr_index++].y=j;
  8. j--;
  9. Если j>=-MASK_SIZE, то переход к п.3
  10. i++;
  11. Если i<=MASK_SIZE, то переход к п.2
  12. Конец
  13. Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.1.

Таблица 2.1

Список условных обозначений

ОбозначениеРасшифровкаMASK_SIZEРадиус максимального фильтра в пикселяхi, jКоординаты текущего пиксела FltArrМассив координатFltArr_indexИндекс текущего элемента в массиве FltArrsРасстояние от центра фильтра до текущего пиксела

  1. Описание алгоритма вычисления центра масс
  1. Назначение и характеристика алгоритма

Алгоритм описывает процесс вычисления центра масс относительно центра фильтра. Математическое описание алгоритма приведено в подразделе 2.1.4. В результате решения алгоритма вычисляются координаты центра масс.

  1. Алгоритм решения
  2. M=0,Wx=0,Wy=0;
  3. Cx=0,Cy=0; k=0;
  4. Если (k>=FltArr_index), то переход к п.8
  5. M=M+ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y:
  6. Wx=Wx+

+(CF.x+FltArr[k].x)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];

  1. Wy=Wy+

+(CF.y+FltArr[k].y)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];

  1. k++; переход к п.3
  2. M=M/255;
  3. Wx=Wx/255;
  4. Wy=Wy/255;
  5. Если (M==0), то переход к п.14
  6. Cx=Wx/M;
  7. Cy=Wy/M;
  8. Конец
  1. Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.2.

Таблица 2.2

Список условных обозначений

ОбозначениеРасшифровкаMОбщая масса пикселей попавших в фильтрWx, WyВес пикселей по осям Ox и Oy соответственно.FltArr_indexКоличество точек фильтраkПорядковый номер точки фильтраFltArrМассив координат точек фильтраImArrМассив исходного изображенияCFТочка, относительно которой вычисляется центр массCx, CyКоординаты центра масс

  1. Описание алгоритма вычисления кривизны
  1. Назначение и характеристика алгоритма

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

  1. Алгоритм решения
  2. Если (CF.mass==0), то к п.2, иначе переход к п.3
  3. С= 140; переход к п.6
  4. P=CentrMass(CF);
  5. h=sqrt( (P.x-CF.x)^2 + (P.y-CF.y)^2 );
  6. C=(h / insideR^2+0.005)*100;
  7. Конец;
  1. Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.3.

Таблица 2.3

Список условных обозначений

ОбозначениеРасшифровкаCFЦентр фильтра ( поле mass масса пиксела, x,y соответственно, координаты)СКривизнаCentrMassФункция, вычисляющая центр массPЦентр массhСмещение центра масс от центра фильтраinsideRВнутренний радиус кольцаsqrtФункция, вычисляющая корень квадратный^Операция возведения в степень

  1. Описание алгоритма обработки изображения

  1. Назначение и характеристика алгоритма

Алгоритм описывает обработку изображения кольцевым фильтром. В алгоритме используются кольцевой фильтр. В результате решения алгоритма выполняется прохождение фильтра по изображению и сохранение результата в файл.

  1. Алгоритм решения
  2. Name = FormNewFileName(OpenDialog1->FileName);
  3. outIm=fopen(Name,"wb");
  4. fwrite(&Width,sizeof(Width),1, outIm);
  5. fwrite(&Height,sizeof(Height),1, outIm);
  6. RingFiltrPoint(insideR,outsideR);
  7. i=outsideR;
  8. j=outsideR;
  9. CrArr[i][j]=CentroidRelax(i,j,insideR,outsideR);
  10. j++;
  11. Если j<Height-outsideR, то переход к п. 8
  12. i++;
  13. Если i< Width-outsideR, то переход к п. 7
  14. i=0;
  15. j=0;
  16. fwrite(&CrArr[i][j],sizeof(CrArr[i][j]),1, outIm);
  17. j++;
  18. Если j<Height, то переход к п. 15
  19. i++;
  20. Если i<Width, то переход к п. 14
  21. fclose(outIm);
  22. Конец;
  1. Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.4.

Таблица 2.4

Список условных обозначений

ОбозначениеРасшифровкаoutImВыходной файловый потокNameИмя выходного файлаFormNewFileNameФункция, формирующая новое имя выходного файлаOpenDialog1->

FileNameИмя файла, открытого с помощью диалога тАЬОткрытьтАЭfopenФункция открытия файлаoutsideRВнешний ради