(C) Кручинин Александр, 2010. http://vidikon.com support@vidikon.com
(C) Российский фонд фундаментальных исследований, 2010.


ImagePak
Библиотека для обработки и распознавания графических изображений
Версия 1.1
  1. Назначение
  2. Geometry
  3. Img
  4. Img_transf
  5. Math_a
  6. Geoman
  7. Detect_img
  8. Contour
  9. Grid
  10. Histogram
  11. Segment
  12. Comparison
  13. Дополнительно
Grid

     Описывается версия Grid 1.01. Операции с сеткой - построение и распознавание.
Изменения (1.01):
- исправлены ошибки конструктора и деструктора GRID;
- добавлена функция GRID::CreateGrid(FOUR_FIG_Pd pp,F_LINE f1,F_LINE f2,F_LINE f3,F_LINE f4,int*pointer);
- исправлена и оптимизирована функция GRID::RecogCells.


Функции ReturnCountBlackPoints и ReturnCountBlackPointsBr

int ReturnCountBlackPoints(IMG img,C_POINTd center,double radius,int& all_points,int& black_points,int& border_points);
int ReturnCountBlackPointsBr(IMG img,C_POINTd center,double radius,int& all_points,int& black_points,int& border_points,C_POINTd &border);

     Функции используются для определения чёрно-белых точек внутри окружности изображения img с центром center и радиусом radius. Функции записывают по ссылкам общее количество точек all_points, количество чёрных точек black_points, количество граничных точек с цветом 128 border_points. Функция ReturnCountBlackPointsBr вдобавок возвращает среднюю точку для граничных точек.

Класс GRID

     Класс предназначен для выполнения операций связанной с построением и распознаванием сетки. Ниже описаны доступные функции класса.

Конструктор GRID

GRID(int x,int y);

     Конструктор создаёт массивы точек и линий для сетки размером x на y.

Функции CreateGrid

int CreateGrid(FOUR_FIG_P pp);
int CreateGrid(FOUR_FIG_Pd pp);

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

Функции CreateGrid

int CreateGrid(FOUR_FIG_Pd pp,F_LINE f1,F_LINE f2,F_LINE f3,F_LINE f4,int*pointer=NULL);

     По заданному ограничивающему четырёхугольнику pp, создаются точки и линии, определяющие местоположение элементов сетки на изображении. 4 линии во входных параметрах определяют, что элементы сетки не одинакового размера. Каждая линия определяет размер каждой стороны ячейки. Точки прямоугольника определяют:
0 ----- 2
|         |
3 ----- 1
     Линии изменения f1) от 0 к 2; f2) от 1 к 2; f3) от 3 к 0; f4) от 3 к 1. А нумерация x начинается с 0 (нулевая ячейка вдоль линии к примеру со стороной в 24 ячейки и т.п.).
pointer - необязательный указатель на массив из 4 элементов, определяющих какое значение прибавлять к x для каждой линии.


Функция GetLine

F_LINE GetLine(int num);

     Возвращает формулу линии по номеру в массиве.

Функция RecogCells

int RecogCells(IMG img);
int RecogCells(IMG img,IMG img24);

     Распознаёт ячейки сетки в 8 битном изображении. Вторая функция нужна для отладки и рисует результаты распознавания на 24 битном изображении img24.

Функция ReturnBlackCells

int ReturnBlackCells(double delta);

     Возвращает общее количество тёмных ячеек, где цвет выше delta (0 - белый, 1 - чёрный).

Функция ReturnGrid

void ReturnGrid(double delta,bool &array);

     Возвращает последовательность array, где цвет выше delta (0 - белый, 1 - чёрный). Последовательность содержит ячейки TRUE для чёрного, FALSE для белого, расположенные слева направо сверху вниз.

Функция ReturnGrid1

void ReturnGrid1(double delta,bool &array);

     Возвращает последовательность array, где цвет выше delta (0 - белый, 1 - чёрный). Последовательность содержит ячейки TRUE для чёрного, FALSE для белого, расположенные снизу вверх слева направо.