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

ВНИМАНИЕ! БЛОГ ПЕРЕЕХАЛ ПО АДРЕСУ
RECOG.RU

23 Август 2010

ImageMagic – что это?

написано в рубрике: Другие библиотеки — Кручинин Александр @ 8:34 ПП

Согласно Википедии, ImageMagick — свободный и многоплатформенный пакет программ для неинтерактивной (пакетной) обработки графических файлов. Поддерживает множество графических форматов, выпущен под лицензией ImageMagick (разновидность лицензии BSD, совместима с GPL). Может использоваться с языками Perl, C, C++, Python, Ruby, PHP, Pascal, Java, в скриптах командной оболочки или самостоятельно.

Сразу читаем лицензию. Разрешено: бесплатная загрузка и использования как в личных, так и коммерческих целях; использование библиотеки в своих пакетах и расширениях. Запрещено: распространять всю библиотеку или её часть без надлежащего уведомления; использовать в любые марки, связанные с ImageMagick Studio LLC. Требования: включение копии лицензии в любые продукты, построенные на базе ImageMagick; уведомлять пользователя о том, что вы используете продукт ImageMagick Studio LLC – просто где-нибудь сослаться. Что не требуется: включение того, что вы разработали к ImageMagick; регистрировать какие-либо изменения ImageMagick. Надеюсь я всё правильно понял, если нет, то вы можете посмотреть лицензию на английском здесь:

http://www.imagemagick.org/script/license.php

Лицензия достаточно «хорошая», но что может данная библиотека? Как говорят сами разработчики библиотеки, это только несколько примеров того, что может библиотека.

Преобразование форматов: конвертирование изображений из одного формата в другой (PNG, JPEG).

Трансформация: изменение размеров, поворот, обрезание и т.п.

Прозрачность: можно сделать некоторые части изображения прозрачными.

Рисование различных фигур и текста.

Декорации: добавление границ и рамок к изображению.

Специальные эффекты: блик, монохромное изображение, оттенок и т.д.

Калькулятор изображения: применение математического выражения к изображению или каналу изображения.

Добавление текста и комментариев к изображению.

Идентификация изображения: получение формата и признаков.

Анимация – создание GIF файлов.

Наложение одного изображения на другое.

Монтаж.

Поддержка больших изображений.

В принципе достаточно обширные возможности для обработки изображений. В дальнейшем попробуем, как ей пользоваться. Но можно сказать, что ей пользуются в Google, например, при разработке продукта Zxing:

http://code.google.com/p/zxing/

13 Май 2010

Описание библиотеки geometry 1.00

написано в рубрике: Другие библиотеки — Кручинин Александр @ 5:14 ПП

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

Структуры:

 

F_LINE – описывает линию, k1 – резерв, назначение остальных параметров

При b=1 y=b1*x+b2, при b=2 x=b1*y+b2

C_POINT – описание целой точки

C_POINTd – описание точки в формате double

FOUR_FIG_P – описание четырёхугольника с помощью целых точек

FOUR_FIG_Pd – описание четырёхугольника с помощью точек в формате double

FOUR_FIG_L – описание четырёхугольник при помощи линий

 

Функции:

 

F_LINE MakeLine(double x1,double y1,double x2,double y2);

F_LINE MakeLine(C_POINT p1,C_POINT p2);

F_LINE MakeLine(C_POINTd p1,C_POINTd p2);

По заданным двум точкам функции строят линию.

 

C_POINTd FindPointContinue(C_POINTd p1,C_POINTd p2,F_LINE line,double size);

Иногда, когда известны две точки и линия между ними, необходимо построить продолжение этой лини на определённую длину, что и делает данная функция. Функция возвращает продолжение линии line построенное ранее между точками p1 и p2 и возвращает координаты точки p, которая является продолжением линии p1 и p2 от точки p1.

 

int Intersection(F_LINE f1,F_LINE f2,double &x,double &y);

Функция вычисляет точку пересечения двух линий и возвращает координаты этих точек в x и y. Пре неудаче функция возвращает 1, при удача – 0.

 

double LengthLine(double x1,double y1,double x2,double y2);

Функция определяет расстояние между двумя точками.

 

float MakePolarR(float x,float y);

float MakePolarF(float x,float y);

Эти функции переводят декартовы координаты в полярные.

 

bool DirectPoint(C_POINT*p,int all,unsigned char flags);

Эта функция, ссылаясь на массив точек, определяет можно ли их по порядку обойти по часовой стрелке на плоскости изображения (DIRECT_HOUR_ARROW) или против часовой (DIRECT_HOUR_ARROW).

 

C_POINTd PointID(C_POINT p);

C_POINT PointDI(C_POINTd p);

Перевод точек из одного формата в другой

 

double RToLine(F_LINE f,double x,double y);

double RToLine(F_LINE f,C_POINTd p);

Высчитывают расстояние от точки до прямой.

 

C_POINTd Average(C_POINTd p1,C_POINTd p2);

Для двух точек ищется средняя между ними.

 

F_LINE MakeParallelLine(F_LINE line,C_POINTd point);

Функция строит параллельную линию, которая проходит в точке point.

 

double FoundInclination(F_LINE line,F_LINE line1);

Функция возвращает угол в радианах между двумя линиями.

 

F_LINE TurnLine(F_LINE f,double alfa,C_POINTd point);

Функция поворачивает линию f на угол alfa и строит её в точке point. Возвращаемое значение записывается в возвращаемый параметр.

11 Май 2010

Библиотека geometry – Геометрические операции

написано в рубрике: Другие библиотеки — Кручинин Александр @ 12:01 ПП

Очень часто при распознавании изображений возникает необходимость в геометрических преобразованиях – получения точки пересечения двух линий, построения параллельной линии, построение продолжения линии, нахождения угла между линиями и т.д.  Библиотека geometry – это просто сборник небольших полезных функций. Лицензия библиотеки – BSD.

geometry 1.00

http://vidikon.com/download/geometry1.00.zip

Работает на WordPress